Reproduction device, reproduction method, reproduction program, recording medium, and data structure

ABSTRACT

When content is reproduced from a disc, audio and a subtitle can be properly and automatically selected. An original language can be set as a language of an audio stream to be reproduced on a player side. An audio stream of the original language is described at a position that comes first in a clip information file. When audio and a subtitle are automatically set, if their languages match, the subtitle is not displayed. When player setting  500  denotes that audio is an original language and subtitle Japanese and streams  501  contained in a disc are an audio stream of Japanese (original language), an audio stream of English, a subtitle stream of English, and a subtitle stream of Japanese, the audio stream of Japanese as the original language and the subtitle stream of Japanese are selected according to the automatic setting. Since their languages match, although streams  502  finally selected are the audio stream of Japanese and the subtitle stream of Japanese, the subtitle stream of Japanese is not displayed.

TECHNICAL FIELD

The present invention relates to a reproducing apparatus, a reproducingmethod, a reproducing program, a recording medium, and a data structurethat allow an audio stream and a subtitle stream to be properly andautomatically selected when a program is reproduced from a largecapacity recording medium.

BACKGROUND ART

As a random-accessible, attachable-detachable recording medium, adigital versatile disc (DVD) has been used for years. In recent years, adisc-shaped recording medium that has a larger record capacity than theDVD and another disc-shaped recording medium that is smaller than theDVD have been developed.

Such recording mediums that contain content of video and audio such asmovies, drams, music concerts have been sold as sell packages. In thesecell packages, a plurality of audio and subtitle streams of differentlanguages can be recorded as one program of content. For example, in theDVD video standard, a video stream, a plurality of audio streams ofdifferent languages, and a plurality of subtitle streams of differentlanguages are multiplexed as one Moving Pictures Experts Group2 (MPEG)program stream.

Movie content created in a foreign country (for example, United States)may contain a plurality of audio streams of different languages, whichare for example an audio stream of English as an original language andan audio stream of Japanese as a Japanese dubbed audio stream, and aplurality of subtitle streams, which are a subtitle stream of Englishand a subtitle stream of Japanese.

In the DVD video standard, when movie content contains a plurality ofaudio streams of different languages and a plurality of subtitle streamsof different languages, the user can select streams to be reproduced.For example, the user may be able to select an audio stream of aJapanese dubbed version and a subtitle stream of an English version. Asanother example, the user may able to select an audio stream of aJapanese dubbed version and select no subtitle stream.

A DVD player apparatus has an automatic selection function that allows apriority language to be initially set as language preset information andan audio stream and a subtitle stream to be automatically selected basedon the language preset information without need to user's selections. Inaddition, the DVD player is provided with a function that selects thenext stream to be reproduced depending on the reproduction history andreproduction path of content besides the initial setting.

Next, the existing audio stream selection function based on the DVDvideo standard will be described in brief. As described above, with theDVD player apparatus, audio that is selected and reproduced by prioritycan be initially set. When the DVD player apparatus is used for exampleby a Japanese user, audio may be often initially set to “Japanese”. Inthis setting, when the DVD player apparatus reproduces for example anAmerican movie or a French movie, as long as an audio stream of Japanesehas been recorded, an audio stream of the Japanese dubbed version isautomatically selected by priority.

In contrast, some users may want to listen to audio of the originallanguage in which content was created. For example, it seems that usersmay want to watch movie content with audio of the original language inwhich the content was created and a subtitle of a translated version ofuser's mother language. For example, when the user who is Japanesewatches movie content created in the United States, the movie contentmay be reproduced with audio of English as the original language inwhich the content was created and a subtitle of Japanese, which is auser's mother language. When the user watches content by selecting audioand language in such a manner, he or she can enjoy the content in anatmosphere close to the original.

Japanese Patent Application Laid-Open No. 2003-46951 discloses areproducing apparatus having a mode of which a language of audio to bereproduced is selected and no subtitle is displayed, a mode of which alanguage of audio to be reproduced is set by default and a language of asubtitle is selected, and a mode of which languages of audio, asubtitle, and a menu are selected so that languages can be easily set.

However, the exiting DVD video standard does have a mechanism thatdenotes whether or not the language of a recorded audio stream is theoriginal language in which content was created. Thus, the originallanguage is not able to be automatically selected when content of a discis reproduced. Consequently, whenever content is reproduced from a disc,as a problem of the related art, the user needs to change the setting ofaudio.

When content of other than Japanese (for example, French) as theoriginal language is reproduced from a disc, the user needs to know theoriginal language of content recorded on the disc with reference to thepackage or booklet attached to the disc. After the user knows theoriginal language, he or she needs a time to press the languageselection button of the player apparatus several times until theoriginal language is selected.

In this case, when the priority language of audio to be reproduced ispreset to French for example in the initial setting of the playerapparatus, only when content is reproduced from the disc, audio ofFrench is automatically selected. However, when content is reproducedfrom a disc whose original language is another language for exampleEnglish, the user needs to change the initial setting of the playerapparatus. Thus, the user feels very inconvenient.

DISCLOSURE OF THE INVENTION

Therefore, an object of the present invention is to provide areproducing apparatus, a reproducing method, a reproducing program, arecording medium, and a data structure that allow audio and a subtitleto be properly and automatically selected when content is reproducedfrom a disc.

To solve the foregoing problem, the present invention is a reproducingapparatus of reproducing content data from a disc-shaped recordingmedium, comprising read means for reading data from a recording mediumon which content data containing at least a video stream, one or aplurality of audio streams corresponding to the video stream and aproduction control program with which reproduction of the content datais controlled have been recorded; player means for reproducing thecontent data according to the reproduction control program; and firstmode setting means for setting a first mode to the player means suchthat it automatically selects an audio stream of an original languagefrom the one or plurality of audio streams when the content data arereproduced.

In addition, the present invention is a reproducing method ofreproducing content data from a disc-shaped recording medium, the methodcomprising the steps of reading data from a recording medium on whichcontent data containing at least a video stream, one or a plurality ofaudio streams corresponding to the video stream, and a productioncontrol program with which reproduction of the content data iscontrolled have been recorded; reproducing the content data according tothe reproduction control program; and setting a first mode to thecontent reproduction step such that an audio stream of an originallanguage is automatically selected from the one or plurality of audiostreams when the content data are reproduced.

In addition, the present invention is a reproducing program causing acomputer device to execute a reproducing method of reproducing contentdata from a disc-shaped recording medium, the reproducing methodcomprising the steps of reading data from a recording medium on whichcontent data containing at least a video stream, one or a plurality ofaudio streams corresponding to the video stream, and a productioncontrol program with which reproduction of the content data iscontrolled have been recorded; reproducing the content data according tothe reproduction control program; and setting a first mode to thecontent reproduction step such that an audio stream of an originallanguage is automatically selected from the one or plurality of audiostreams when the content data are reproduced.

In addition, the present invention is a recording medium on whichcontent data containing at least a video stream, one or a plurality ofvideo streams corresponding to the video stream, a reproduction controlprogram with which reproduction of the content data is controlled, andstream information describing at least information which identifies eachof one or a plurality of audio streams such that the information whichidentifies the audio stream used as an original language comes firsthave been recorded.

In addition, the present invention is a data structure comprising avideo stream; content data containing one or a plurality of audiostreams corresponding to the video stream; a reproduction controlprogram with which reproduction of the content data is controlled; andstream information containing at least information which identifies eachof the one or plurality of audio streams such that the information whichidentifies the audio stream used as an original language comes first.

As described above, according to the present invention, at least contentdata containing a video stream and one or a plurality of audio streamscorresponding to the video stream and a reproduction control programwith which reproduction of the content data is controlled have beenrecorded on a recording medium. When a reproducing apparatus reproducescontent data from the recording medium according to the reproductioncontrol program reproduced therefrom, a mode in which an audio stream ofan original language is automatically selected from one or a pluralityof audio streams is set. The user can enjoy content of the originallanguage reproduced from the disc without need to check the originallanguage of the content and set the original language to the reproducingapparatus.

In addition, according to the present invention, at least content datacontaining a video stream and one or a plurality of audio streamscorresponding to the video stream, a reproduction control program withwhich reproduction of the content data is controlled, and streaminformation representing at least information that identifies each ofone or a plurality of audio streams in such a manner that informationidentifying an audio stream of the original language comes first in thestream information have been recorded on a recording medium. Thus, areproducing apparatus that reproduces content from the disc can check anarrangement of the information that identifies audio streams in thestream information and identifies the audio stream of the originallanguage.

In addition, a data structure according to the present inventioncontains at least content data containing a video stream and one or aplurality of audio streams corresponding to the video stream, areproduction control program with which reproduction of the content datais controlled, and stream information representing at least informationthat identifies each of one or a plurality of audio streams such thatinformation identifying an audio stream of the original language comesfirst in the stream information. Thus, when an arrangement ofinformation that identifies audio streams in the stream information ischecked, the audio stream of the original language can be identified.

At this point, without need to add information representing an originallanguage to an audio stream used as the original language or informationthat identifies the audio stream, the audio stream of the originallanguage can be identified.

As described above, as an effect of the present invention, when contentis reproduced from the disc, audio streams and subtitle streams ofdifferent languages can be properly and automatically selected.

In addition, according to an embodiment of the present invention, asinitial setting of audio of the player, attribute “original language”can be set. A language in which content was created can be automaticallyselected. Thus, as an effect of the present invention, the user canenjoy content without deterioration of original environment.

In addition, according to an embodiment of the present invention, evenif the same language has been set to an audio stream and a subtitlestream as a result of automatic selection, the subtitle stream isautomatically caused to be not displayed. Thus, the user does not needto manually operate the apparatus not to display an undesired subtitle.Thus, as an effect of the present invention, the user-friendlinessimproves.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram showing the structure of layers accordingto the UMD video standard;

FIG. 2 is a schematic diagram showing an example of a player modelaccording to an embodiment of the present invention;

FIG. 3 is a schematic diagram showing an example of the internalstructure of a movie player;

FIG. 4 is a schematic diagram describing three statuses of the movieplayer;

FIG. 5 is a schematic diagram showing an event model of the movie playeraccording to the embodiment of the present invention;

FIG. 6 is a schematic diagram showing examples of events that occurwhile a play list is being reproduced;

FIG. 7 is a schematic diagram showing a list of examples of propertiesof a movie player object;

FIG. 8 is a schematic diagram showing a list of examples of methods ofthe movie player object;

FIG. 9 is a schematic diagram showing examples of key inputs as user'sinputs;

FIG. 10 is a schematic diagram showing examples of key inputs as user'sinputs;

FIG. 11A, FIG. 11B and FIG. 11C are schematic diagrams showing examplesof control commands according to key inputs;

FIG. 12 is a schematic diagram showing examples of events according tokey inputs;

FIG. 13 is a schematic diagram showing examples of event handlers;

FIG. 14 is a schematic diagram showing examples of event handlers;

FIG. 15 is a flow chart showing an example of a process that executes apredetermined program according to a user's input event;

FIG. 16 is a flow chart showing a process performed after a disc isloaded into a UMD video player until the disc is ejected therefrom;

FIG. 17 is a schematic diagram showing an example of the structure of ascript file;

FIG. 18 is a flow chart showing an example of a procedure that executesevent handler onAutoPlay( );

FIG. 19 is a flow chart showing an example of a procedure that executesevent handler onContinuePlay( );

FIG. 20 is a flow chart showing an example of a process performed uponcompletion of reproduction;

FIG. 21 is a schematic diagram describing an example of a scriptprogram;

FIG. 22 is a schematic diagram showing an example of a script program;

FIG. 23 is a schematic diagram describing a file management structureaccording to the UMD video standard;

FIG. 24 is a schematic diagram showing an example of syntax of theentire structure of file “PLAYLIST.DAT”;

FIG. 25 is a schematic diagram showing an example of the internalstructure of block PlayItem( );

FIG. 26 is a schematic diagram showing an example of the internalstructure of block PlayListMark( );

FIG. 27 is a schematic diagram describing field mark_type of block Mark();

FIG. 28 is a schematic diagram describing designation of a mark time ina clip AV stream file;

FIG. 29 is a schematic diagram showing an example of syntax thatrepresents the entire structure of clip AV stream file “XXXXX.CLP”;

FIG. 30 is a schematic diagram describing correlation of blockStreamInfo( ) and an elementary stream;

FIG. 31 is a schematic diagram showing an example of the internalstructure of block StaticInfo( );

FIG. 32 is a schematic diagram showing an example of the internalstructure of block DynamicInfo( );

FIG. 33 is a schematic diagram showing an example of the internalstructure of block EP_map( );

FIG. 34 is a block diagram showing an example of the structure of a discreproducing apparatus according to the present invention;

FIG. 35A and FIG. 35B are a functional block diagram describing indetail the operation of the disc reproducing apparatus;

FIG. 36 is a schematic diagram describing automatic selection of audioand subtitle stream according to an embodiment of the present invention;

FIG. 37 is a schematic diagram describing the automatic selection ofaudio and subtitle streams according to the embodiment of the presentinvention;

FIG. 38 is a schematic diagram describing the automatic selection ofaudio and subtitle streams according to the embodiment of the presentinvention;

FIG. 39 is a schematic diagram showing examples of values of propertyaudioFlag;

FIG. 40 is a schematic diagram showing examples of values of propertysubtitleFlag;

FIG. 41A and FIG. 41B are schematic diagrams showing a list of examplesof arguments of method play( );

FIG. 42 is a flow chart showing a flow of a process of automaticallyselecting audio stream and subtitle stream from a plurality of types ofaudio streams and subtitle streams;

FIG. 43 is a flow chart describing in detail an example of a process ofautomatically selecting an audio stream;

FIG. 44 is a flow chart describing in detail an example of a process ofautomatically selecting an audio stream;

FIG. 45 is a flow chart describing in detail an example of a process ofautomatically selecting a subtitle stream;

FIG. 46 is a flow chart describing in detail an example of a process ofautomatically setting property subtitleFlag; and

FIG. 47 is a flow chart describing another example of the process ofautomatically setting property subtitleFlag.

BEST MODES FOR CARRYING OUT THE INVENTION

Next, an embodiment of the present invention will be described in thefollowing order.

1. UMD video standard 2. Player model according to UMD video standard 3.Event model of movie player 4. Movie player object 5. Example of scriptprogram 6. File management structure 7. Disc reproducing apparatus 8.Automatic selection of audio and subtitle streams 1. UMD video standard

For easy understanding of the present invention, a system according toan embodiment of the present invention will be described. According tothe embodiment of the present invention, a player model is describedwith a script language called an ECMA script. The ECMA script is ascript language for a cross platform based on JavaScript (registeredtrademark) and standardized by European Computer ManufacturersAssociation (ECMA). The ECMA script has higher compatibility with HTMLdocuments. In addition, since the ECMA script allows original objects tobe defined, the ECMA script can be suitably used for a player modelaccording to the present invention.

In the following description, the standard that uses a script languagebased on the ECMA script and that accords to the embodiment of thepresent invention is referred to as UMD (Universal Media Disc:registered trademark) video standard. A script part of the UMD videostandard is referred to as the UMD video script standard.

Next, the UMD video standard will be described in brief. FIG. 1 showsthe structure of layers of the UMD video standard. The UMD videostandard defines a three-layer structure composed of a script layer, aplay list layer, and a clip layer. Streams are managed according to thislayer structure.

According to the UMD video standard, digitally encoded video data, audiodata, and subtitle data are treated as an MPEG2 stream of which theyhave been multiplexed as an elementary stream according to the MPEG2(Moving Picture Experts Group 2) system. An MPEG2 stream of whichelementary streams of video data, audio data, and subtitle data havebeen multiplexed is referred to as a clip AV stream. A clip AV stream isstored in a clip AV stream file. When a clip AV stream file is recorded,a clip information file is created according to the clip AV file in therelation of 1 to 1. A pair of a clip information file and a clip AVstream file corresponding thereto is referred to as a clip.

A clip is a recording unit of a disc. The reproduction order of clips ismanaged in the play list layer higher than the clip layer. The play listlayer is a layer that designates the reproduction path of clips. Theplay list layer contains one or a plurality of play lists. A play listis composed of a set of play items. A play item contains a pair of an INpoint and an OUT point that represent the reproduction range of a clip.When play items are placed, clips can be reproduced in any order. A playitem can redundantly designate clips. The IN point and the OUT point ofa clip AV stream are designated with time stamps (intra-clip times).Time stamps are converted into byte positions of a clip AV stream fileaccording to information of a clip information file.

A play list has a structure that reproduces play items that representall or part of clips in a predetermined order. Only with a play list,the reproduction order of clips cannot be changed. In addition, a playlist does not provide the user with an interactive function. Accordingto the embodiment of the present invention, a plurality of play listsare collectively stored in one file “PLAYLIST.DAT.”

The script layer is a layer composed of UMD video scripts as anextension of ECMA scripts as language specifications. An UMD videoscript is a script of which an ECMA script is extended to accomplish aspecial function based on the UMD video standard.

The script layer is an upper layer of the play list layer. The scriptlayer is composed of a sequence of commands that designate thereproduction of a play list and that set a player. Commands in thescript layer accomplish play list reproduction including a conditionalbranch so that one of streams according to a plurality of languages canbe selected or streams can be reproduced according to a play listselected in a predetermined condition. An example of an application thatuses play list reproduction including a conditional branch is amulti-story content. The script layer provides the user with aninteractive function.

According to the embodiment of the present invention, the script layeris composed of one file “SCRIPT.DAT.” File “SCRIPT.DAT” is managed as aresource. File “SCRIPT.DAT” contains script data described according toa real ECMA script, sound data for sound effects and so forth in buttonoperations, a screen design composed of image data used for a backgroundimage and so forth of a menu screen, and image data (bit map data) forGUI parts such as button images.

2. Player Model According to UMD Video Standard

Next, a model of a reproducing apparatus (player) that reproduces dataaccording to the UMD video standard, namely a player model, will bedescribed. The player reads a script program, a play list, and a clipinformation file from a disc. Thereafter, the player reads a clip AVstream file in the reproduction order according to those files andreproduces video data, audio data, subtitle data, and so forth.

In the language specifications of the script program, a functional blockthat reproduces a play list is implemented as an object in the scriptprogram. According to the UMD video standard, the object that reproducesthe play list is referred to as the movie player object. Commands thatdesignate the reproduction of the play list and set the player aremethods of the movie player object. The movie player object iscontrolled by the methods of the script layer. At this point, the movieplayer object requires a function that informs the script layer of astate change, a reproduction position, and so forth. This functioncorresponds to an operation that the movie player object issues an eventto the script program. A process corresponding to the event is describedas an event handler.

When a model of which the movie player object transfers information asan event to the script program and the script program controls the movieplayer object with a method is made, the script program can control thereproduction of a clip AV stream.

FIG. 2 schematically shows an example of the player model according tothe embodiment of the present invention. A movie player 300 is a modulethat reproduces video data, audio data, and subtitle data according tothe UMD video standard. The movie player object is an object in a scriptprogram so that the script program operates a movie object. In otherwords, the movie player object is a script program that accomplishes thefunction of the movie player.

Since it is thought that the movie player 300 and the movie playerobject are substantially the same, in the following description, theyare denoted by the same reference numeral.

In FIG. 2, the movie player 300 reads a clip AV stream file according toa database of a play list or clip information with a method of a lowerlayer (a native implementation platform 301 in the example shown in FIG.2) as a user's input 310 or the like or a method of a script layer 302as an upper layer and decodes and displays the clip AV stream.

The inside of the movie player object 300 depends on the implementationof the UMD video player that reproduces data from the UMD video disc.The script layer 302 provides APIs (Application Programming Interfaces)that are methods and properties as black-box objects. In this case, theUMD video player represents a real device that implements a movieplayer. All UMD video players implement a movie player according to theUMD video standard and have reproduction compatibility with other UMDvideo players.

As shown in FIG. 2, the movie player 300 has three input/output pathsthat are a path through which a control command 311 is received from thenative implementation platform 301, a path through which the scriptlayer 302 is informed of an event 312, and a path through which a method313 is received from the script layer 302.

The control command 311 is a command that is received from the nativeimplementation platform 301 and that controls the operation of the movieplayer object 300. The native implementation platform 301 is aninterface between an original portion of the UMD video player as a realdevice and the movie player 300. The event 312 is a script event sentfrom the movie player 300 to the script layer 302. The method 313 is amethod that a script program of the script layer 302 designates to themovie player 300.

The movie player object 300 has a database 320 for play lists and clipinformation according to the UMD video standard. The movie player object300 masks the user's input 310. In addition, the movie player object 300performs for example a process that converts the reproduction positiondesignated by a time into a byte position of a clip AV stream with thedatabase 320.

A playback module 321 of the movie player object 300 decodes a clip AVstream, which is an MPEG2 PS (Program Stream) of which video data, audiodata, and subtitle data have been multiplexed. The playback module 321has three states that are play, stop, and pause. The playback module 321changes among these states with a control command and a method (see FIG.3).

The script layer 302 is a layer that executes a script program accordingto the UMD video script standard, controls the movie player object 300,and displays data on the display. The script layer 302 accomplishes ascenario that the content creator side intends. The script layer 302issues the method 313 to the movie player object 300. The script layer302 receives the event 312 from the movie player object 300. The scriptlayer 302 exchanges a key event 314 according to the user's input 310and a method 315 that causes the native implementation platform 301 todisplay data on the display with the native implementation platform 301.

For example, buttons on the menu screen are generated by the nativeimplementation platform 301 according to the method 315 supplied fromthe script program of the script layer 302 to the native implementationplatform 301. When the user performs an operation such as selection ordecision for one of the buttons, the key event 314 according to theuser's input 310 is sent from the native implementation platform 301 tothe script layer 302. The script program of the script layer 302performs a process with the key event 314 according to the user's input310.

Thus, the movie player 300 performs decode and display controls forvideo data, audio data, and subtitle data. On the other hand, the scriptlayer 302 performs arrange and display processes for part images thatcompose graphical user interfaces such as buttons (hereinafter, thesepart images are referred to as GUI parts) and processes againstselection and decision operations of the GUI parts.

The native implementation platform 301 is a platform for operations ofthe movie player object 300 and the script program. When the real UMDvideo player is hardware, the native implementation platform 301 isimplemented as hardware so that the native implementation platform 301intermediates a process between hardware and the player model.

The native implementation platform 301 receives the user's input 310from the user and determines whether the received user's input 310 is acommand for the movie player 300 or a command for a button generated anddisplayed in the script layer 302. When the determined result representsthat the user's input 310 is a command for the movie player 300, thenative implementation platform 301 converts the user's input 310 intothe control command 311 that is an internal control command for themovie player 300 and issues a control command to the movie player 300.

When the determined result represents that the user's input 310 is acommand of a GUI part generated and displayed in the script layer 302,the native implementation platform 301 informs the script layer 302 ofthe key event 314 according to the user's input 310. For example, thenative implementation platform 301 can display for example a buttonimage on the display according to the method 315 that the script layer302 designates according to the key event 314. In other words, thenative implementation platform 301 and the script layer 302 can directlyexchange an event and a method not through the movie player 300.

Next, the movie player 300 will be described in details. FIG. 3 shows anexample of the internal structure of the movie player 300. As describedabove, the movie player 300 is composed of the database 320 and theplayback module 321. The database 320 is an area that stores informationof a play list read from the disc and information of clips, namely clipinformation.

The playback module 321 is composed of a decoder engine 322 and aproperty 323. The property 323 is a value that represents the state ofthe playback module 321. The property 323 has two types of a property323A (read-only parameter) whose value depends on the initial setting ofthe movie player 300 like a language code and a property 323B (playerstatus) whose value depends on the state of the playback module 321.

The value of the property 323A, whose value depends on the initialsetting, is set by a native device for example a real device. Thus, thevalue of the property 323A is not changed by a play list, clipinformation, and a script program. The value of the property 323A can beread from a script program. In contrast, the value of the property 323B,which represents the state of the playback module 321, can be read froma script program. In addition, the value of the property 323B can bewritten from some script programs.

In this operation model, it is assumed that a play list and clipinformation are pre-loaded from the disc before a clip AV stream isreproduced. Instead, the operations of the movie player model may beaccomplished in another implementation.

The movie player object 300 reproduces a play list designated by thescript layer 302 or the native implementation platform 301. For example,the movie player 300 references the database 320 and obtains thereproduction position of the clip AV stream as the byte position of thefile according to the designated play list. In the playback module 321,the decoder engine 322 controls the decoding of the clip AV streamaccording to the information of the reproduction position.

As shown in FIG. 4, the movie player 300 has three states of play, stop,and pause depending on the reproduction state of a play list. The playstate represents that a play list is being reproduced and a time haselapsed. The play state includes regular reproduction, variable speedreproduction such as double speed reproduction and ½ speed reproduction,fast forward, and fast reverse. The pause state represents that a playlist is being reproduced and time axis stops. So-called framereproduction, of which frames are forward and reverse reproduced, is astate of which the pause state and the play state are repeated. The stopstate represents that a play list is not being reproduced.

The state of the movie player 300 depends on the state change amongplay, pause, and stop of the decoder engine 322 of the movie player 300.The value of the property 323B is updated according to the state changeof the decoder engine 322.

Resume information 324 stores the state that exits immediately beforethe stop state occurs. After the movie player 300 decodes a play list,when the movie player 300 is in the play state, if the state of themovie player 300 is changed to the stop state, the resume information324 stores the state that exists immediately before the stop stateoccurs. In addition, the resume information 324 for each title of thedisc can be stored in a nonvolatile memory of the player as hardware.The disc has unique identification information (referred to as title ID)for each title of the disc. The resume information 324 and theidentification information are correlatively stored. Thus, when thestate of the disc having the title according to the identificationinformation is changed from the stop state to the play state, data canbe reproduced from the position at which the stop state occurred.

3. Event Model of Movie Player

Next, an event model of the movie player 300 will be described. In theplay state, the movie player 300 reproduces a play list and generatesvarious events. The events execute process programs described as scriptsand referred to as event handlers. The event handlers are methods calledupon occurrence of events. A program execution model that startsexecuting a process program upon occurrence of an event is referred toas an event driven model. In an event driven model, an irregular eventoccurs. When the event occurs, a predetermined program is executed.According to the embodiment of the present invention, a script programcontrols the operations of the movie player object 300 with an eventhandler group.

FIG. 5 schematically shows an event model of the movie player 300according to the embodiment of the present invention. In FIG. 5, eventhandlers onEventA( ), onEventB( ), and onEventC( ) are interfaces. Thecontents of the event handlers are described as scripts. The contents ofthe event handlers are created and implemented by for example thecontent creator side. In the UMD video scrip standard, an event handleris provided for each event of which the movie player object 300 informsthe script program. In the example shown in FIG. 5, it is decided that aprocess program executed upon occurrence of event A is event handleronEventA( ). This applies to event B and event C. Thus, when event Boccurs, corresponding event handler onEventB( ) is executed. When eventC occurs, corresponding event handler onEventC( ) is executed.

Since the system side selects an event handler called upon occurrence ofan event, the content creator side does not need to describe a processthat determines what event occurred in a script program.

FIG. 6 shows examples of events that occur while a play list is beingreproduced. Since chapter mark ChapterMark is described at the beginningof play list PlayList, when the play list is reproduced from thebeginning, event Chapter corresponding to the chapter mark occurs.Whenever the chapter is changed to another chapter, the script layer 302is informed of event Chapter and the corresponding event handleronChapter is executed. When reproduction time for event mark EventMarkelapses, a corresponding mark event occurs. At the end of the play list,the movie player 300 pauses the reproduction of the play list andinforms the script layer 302 of event PlayListEnd. The script layer 302side causes the movie player 300 to start reproducing another play listin the corresponding event handler onPlayListEnd( ). In such a manner,the movie player 300 continues to reproduce a sequence of play lists inthe order that the content creator side intended.

In such a manner, while the player is operating, various events occur.When an upper level program is informed of an occurrence of an event,the upper level program can grasp the state of the player. When theupper level program provides programs (event handlers) that are executedaccording to events of which it is informed, it can handle variousevents. Events and event handlers will be described later.

When the content creator side has not described an event handler, theupper program executes an operation (default event handler) built in theplayer and that is defined in the standard or ignores the event. When noprocess is required, if an event handler according to the event is notdescribed, the event can be actively ignored.

As event models, there may be an event listener model, a single-methodmodel, and so forth. In an event listener model, an object registers alistener according to a predetermined event to the player object. Whenan event that occurs in the player object is an event that has beenregistered, the player object transmits the event to the object that hasregistered the event. The object executes a corresponding method. In asingle-method model, one method is called whatever event occurs.

The event model according to the embodiment of the present invention issimpler than an event listener model that requires processes such asevent registration process and event deletion process. The single-methodmodel needs to know what event occurred and describe in the method apre-process that changes a process routine according to each event thatoccurs. Since the method is implemented by the content creator side,even if the model is simple, the load of the content creator sideincreases. In addition, whenever an event occurs, since one largeprocess program (method) is called, a large memory area will be used andthe execution speed will become slow. Thus, since the model according tothe embodiment of the present invention provides process programs (eventhandlers) according to individual events, the model is superior to theother models in these points.

4. Movie Player Object

Next, the external specifications of the movie player object 300 will bedescribed. Generally, an object defined according to the ECMA scriptlanguage specifications has a property and a method. Like this object,as shown in FIG. 2 and FIG. 3, the movie player object 300 according tothe embodiment of the present invention has a property and a method.When an external object designates an object name and a property name,the object can directly read and write a property. Instead, when methodsetXXX( ) (where “XXX” represents a property name) that sets a propertyvalue and method getXXX( ) that reads a property value are defined, themethods can read and write properties of other objects.

FIG. 7 shows a list of examples of properties that the movie playerobject 300 has. These properties correspond to the property 323 shown inFIG. 3. The properties that belong to the read-only parameters 323Ashown in FIG. 3 are as follows. Property scriptVersion represents theversion of the UMD video script. Property languageCode represents thelanguage code of the menu display language that is set to the UMD videoplayer. Property audioLanguageCode represents the language code of theaudio language that is set to the UMD video player. PropertysubtitleLanguagecode represents the language code of the subtitlelanguage that is set to the UMD video player.

When a disc is loaded into the movie player 300, a scrip file that isread from the disc is decided according to the language code representedby property languageCode that is set in the read-only parameter 323A.When the disc loaded into the movie player 300 does not have a scriptfile according to the language, a default script file is read from thedisc. For example, a file recorded at the beginning of a plurality ofscript files is read as a default script file.

Properties that belong to the player status 323B shown in FIG. 3 are asfollows. Property playListNumber represents the play list number of aplay list that is currently being reproduced. Property chapterNumberrepresents the chapter number of a chapter that is currently beingreproduced. Property videoNumber represents the video stream number of avideo stream that is currently being reproduced. Property audioNumberrepresents the audio stream number of an audio stream that is currentlybeing reproduced. Property subtitleNumber represents the subtitle streamnumber of a subtitle stream that is currently being reproduced. PropertyplayListTime represents the time of the play list when the beginning ofthe play list is 0. Property audioFlag designates ON/OFF of the audioreproduction and dual monaural LR. Property subtitleFlag representsON/OFF of the subtitle indication.

The dual monaural is a mode of which left and right (L, R) channels ofstereo audio are independently used as monaural audio channels.

When the movie player 300 is in the play state or the pause state, eachproperty that belongs to the player status 323B represents theseinformation. When the movie player 300 is changed to the stop state,each property that belongs to the player status 323B is backed up as theresume information 324. At this point, the contents of the player status323B may be cleared.

FIG. 8 shows a list of examples of methods that the movie player object300 has. The methods correspond to the method 313 shown in FIG. 3.Method play( ) reproduces video data. Method playChapter( ) designates achapter and reproduces video data of the designated chapter. Methodstop( ) stops reproducing video data. Method pause( ) pauses thereproduction of video data. Method playStep( ) reproduces video datastep by step. Method changeStream( ) changes a video stream, an audiostream, and/or a subtitle stream. Method getPlayerStatus( ) obtains theplay state, the stop state, the pause state, or the like of the movieplayer 300. Method reset( ) stops the reproduction of video data andclears the contents of the resume information 324.

According to the UMD video standard, video data can be displayed at apart of the display screen. The following four methods are methods thatdisplay video data at a part of the display screen. Method setpos( )sets the display position of video data. Method getPos( ) obtains thedisplay position of video data. Method setSize( ) sets the display sizeof video data. Method getSize( ) obtains the display size of video data.

In reality, the movie player 300 and the native implementation platform301 are integrated. In other words, the movie player 300 UMD and thenative implementation platform 301 are correlated as hardware, a UMDplayer that loads a disc and reproduces video data from the disc, andsoftware that controls the UMD player. What portion is hardware and whatportion is software depend on the implemented structure. For example,when the UMD player is a personal computer or the like, the otherportions except for the disc dive are composed of software. When asingle UMD player is used, besides the disc drive, for example the videodecoder, the audio decoder, and so forth may be composed of hardware.Thus, methods, commands, and events exchanged between the movie player300 and the native implementation platform 301 are not limited to thoseexplicitly shown in FIG. 2.

On the other hand, with respect to key inputs of the user, as shown inFIG. 2, the user's input 310 is received first by the nativeimplementation platform 301. In other words, the native implementationplatform 301 receives a key input of the user as the user's input 310.The native implementation platform 301 determines whether the user'sinput 310 is a command to the movie player 300 or an event to a scriptprogram of the script layer 302. Depending on the determined result, thenative implementation platform 301 generates the control command 311 orthe key event 314 and informs the corresponding upper layer (movieplayer 300 or the script layer 302) of the generated control command 311or key event 314.

FIG. 9 and FIG. 10 show examples of key inputs of the user's input 310.In FIG. 9 and FIG. 10, keys having prefix “VM” are abstracted virtualkeys that do not depend on the implementation. FIG. 9 shows examples ofkey inputs with respect to the operations of the movie player 300. KeyVK_POWER provides a function corresponding to a power key. KeyVK_POWER_ON provides a function corresponding to a power ON key. KeyVK_POWER_OFF provides a function corresponding to a power OFF key. KeyVK_MENU provides a function corresponding to a menu key that displays amenu. Key VK_ENTER provides a function corresponding to an enter keythat ends a command or data input. Key VK_RETURN provides a functionthat returns the process by one step.

Key VK_PLAY provides a function corresponding to a play key that startsthe reproduction operation. Key VK_STOP provides a functioncorresponding to a stop key that stops the reproduction operation. KeyVK_PAUSE provides a function corresponding to a pause key that pausesthe reproduction operation. Key VK_FAST_FORWARD provides a functioncorresponding to a fast forward key that performs the fast forwardreproduction operation. Key VK_FAST_REVERSE provides a functioncorresponding to a fast reverse key that performs the fast reversereproduction operation. Key VK_SLOW_FORWARD provides a functioncorresponding to a slow (forward) key that performs the forward slowreproduction operation. Key VK_SLOW_REVERSE provides a functioncorresponding to a slow (reverse) key that performs the reverse slowreproduction operation. Key VK_STEP_FORWARD provides a functioncorresponding to a step (forward) key that performs the forward stepreproduction operation. Key VK_STEP_REVERSE provides a functioncorresponding to a frame (reverse) key that performs the reverse stepreproduction operation.

FIG. 10 shows key inputs with respect to the menu operations. KeyVK_NEXT provides a function corresponding to a next designation key thatinputs a value that represents “next.” Key VK_PREVIOUS provides afunction corresponding to a previous designation key that inputs a valuethat represents “previous.” With key VK_NEXT and key VK_PREVIOUS, theuser can designate for example the movement to the next chapter and theprevious chapter, respectively.

Key VK_UP provides a function corresponding to an up directiondesignation key that inputs a value that represents “up.” Key VK_DOWNprovides a function corresponding to a down direction designation keythat inputs a value that represents “down.” Key VK_RIGHT provides afunction corresponding to a right direction designation key that input avalue that represents “right.” Key VK_LEFT provides a functioncorresponding to a left direction designation key that inputs a valuethat represents “left.” Key VK_UP_RIGHT provides a functioncorresponding to an upper right direction designation key that inputs avalue that represents “upper right.” Key VK_UP_LEFT provides a functioncorresponding to an upper left direction designation key that inputs avalue that represents “upper left.” Key VK_DOWN_RIGHT provides afunction corresponding to a down right direction designation key thatinputs a value that represents “down right.” Key VK_DOWN_LEFT provides afunction corresponding to a down left direction designation key thatinputs a value that represents “down left.” With these direction keys,the user can designate for example the movement of the cursor on thedisplay.

Key VK_ANGLE provides a function corresponding to an angle change keythat designates an angle change operation for multi-angle video data.Key VK_SUBTITLE provides a function corresponding to a subtitle changekey that designates English subtitle, Japanese subtitle, and subtitleON/OFF. Key VK_AUDIO provides a function corresponding to an audiochange key that designates an audio mode such as surround mode orbilingual mode. Key VK_VIDEO_ASPECT provides a function corresponding toan aspect change key that changes an aspect ratio of video data. KeyVK_COLORED_KEY_(—)1 provides a function corresponding to a coloredfunction key 1. Key VK_COLORED_KEY_(—)2 provides a functioncorresponding to a colored function key 2. Key VK_COLORED_KEY_(—)3provides a function corresponding to a colored function key 3. KeyVK_COLORED_KEY_(—)4 provides a function corresponding to a coloredfunction key 4. Key VK_COLORED_KEY_(—)5 provides a functioncorresponding to a colored function key 5. Key VK_COLORED_KEY_(—)6provides a function corresponding to a colored function key 6.

Since the functions of the key inputs shown in FIG. 9 are different intheir roles from those of the key inputs shown in FIG. 10, the nativeimplementation platform 301 needs to select destinations that areinformed of the key inputs. As described above, key inputs shown in FIG.9 designate the reproduction operations of video data, audio data, andsubtitle data. When the native implementation platform 301 receives oneof the key inputs shown in FIG. 9 as the user's input 310, the nativeimplementation platform 301 converts the received key input into acommand shown in FIG. 11A, FIG. 11B and FIG. 11C and informs the movieplayer 300 of the converted command.

On the other hand, since the key inputs shown in FIG. 10 are the user'sinput 310 to the GUI, the script layer 302, which structures a screenand generates buttons, needs to be informed of these inputs. When thenative implementation platform 301 receives one of key inputs shown inFIG. 10 as the user's input 310, the native implementation platform 301converts the key input into the event 314 shown in FIG. 2 and informsthe script layer 302 of the event 314. FIG. 12 shows examples of the keyevent 314 according to the key inputs.

FIG. 9 and FIG. 10 show also key inputs with respect to stream changeoperations such as key VK_ANGLE, key VK_SUBTITLE, and key VK_AUDIO.These key inputs are key inputs that accomplish the same functions asstream change methods that the script program performs to the movieplayer 300.

Next, commands shown in FIG. 11A, FIG. 11B and FIG. 11C will bedescribed in detail. Command uo_timeSearch(playListTime) designates thereproduction of a play list that is being reproduced from a designatedtime. Argument playListTime represents the time of the play list whenthe beginning of the play list is 0. Since this command does notdesignate a play list number, the time represented by argumentplayListTime is a designated time in the range of the play list beingreproduced. Command uo_play( ) designates the start of the reproductionat a predetermined reproduction speed such as regular reproductionspeed. The start position of the play list is decided according to theresume information 324. When there is no information corresponding tothe resume information 324, the user's operation is invalidated. Thiscommand corresponds to the execution of method play( ) without the playlist number designated. With this command, the user cannot designate aplay list number.

Command uo_playChapter(chapterNumber) starts reproducing the play listbeing reproduced from a chapter designated by argument chapterNumber.Without the chapter number designated, this command starts reproducingthe play list from the beginning of the chapter being reproduced. Thiscommand corresponds to method playChapter( ) without the chapter numberdesignated. Command uo_playPrevChapter( ) starts reproducing the playlist from the immediately previous chapter. Command uo_playNextChapter() starts reproducing the play list from the immediately next chapter.Command uo_stop( ) stops reproducing the play list.

Command uo_jumpToEnd( ) jumps to the end of the play list. This commandcorresponds to a user's operation that causes the movie player 300 tostop the reproduction and generate event playListEnd. According to thiscommand, the script layer 302 executes event handler onPlayListEnd.Command uo_forwardScan(speed) forward reproduces the play list at areproduction speed designated by argument speed. Commanduo_backwardScan(speed) backward reproduces the play list at areproduction speed designated by argument speed. Argument speed of thesecommands uo_forwardScan(speed) and uo_backwardScan(speed) depends on theimplementation of the UMD video player.

Command uo_playStep(forward) forward reproduces the play list step bystep. Command uo_playStep(backward) backward reproduces the play liststep by step. Command uo_pauseOn( ) pauses the reproduction of the playlist according to a user's operation. Command uo_pauseOff( ) cancels thepause state of the reproduction of the play list according to a user'soperation.

Command uo_changeAudioChannel(value) changes the channel of audio dataor one channel of dual monaural reproduction. When this command isexecuted, the value of flag audioFlag needs to be accordingly changed.Command uo_setAudioEnabled(Boolean) turns ON/OFF the audio stream. Whenthis command is executed, the value of flag audioFlag needs to beaccordingly changed. Command uo_setSubtitleEnabled(Boolean) turns ON/OFFthe subtitle stream. When this command is executed, the value of flagsubtitleFlag needs to be accordingly changed. Command uo_angleChange()changes the display angle. When the movie player 300 is informed of theuser's operation for this command, the movie player 300 informs thescript layer 302 of event angleChange. Commanduo_audiochange(audioStreamNumber) changes the audio stream to bereproduced. Command uo_subtitleChange(subtitleStreamNumber) changes thesubtitle stream to be reproduced.

Next, the relationship between events shown in FIG. 12 and methods ofthe movie player 300 will be described in detail. Event menu jumps to amenu. The native implementation platform 301 informs the script layer302 rather than the movie player 300 of this event. When the scriptlayer 302 receives event menu, the script layer 302 executes eventhandler onMenu. Event exit is an event that the native implementationplatform 301 issues when it completes the UMD video application. Whenthe script layer 302 receives event exit, the script layer 302 executesevent handler onExit.

Event up, event down, event left, event right, event focusIn, eventfocusOut, event push, and event cancel are events that occur when buttonimages as GUI parts on the screen are focused. The native implementationplatform 301 informs the script layer 302 rather than the movie player300 of these events. When a button image is focused, for example thecursor displayed on the screen represents the coordinates of the buttonimage so that the button image can be selected. Event up, event down,event left, and event right occur when an up button image, a down buttonimage, a left button image, and a right button image are focused,respectively. Event focusIn occurs when any button image is focused.Event focusOut occurs when any focused button image is defocused. Eventpush occurs when a press operation is performed for any focused buttonimage. Event cancel occurs when a cancel operation is performed againstthe press operation for any button image.

Event autoPlay and event continuePlay are events that cause the scriptlayer 302 to start executing a script. Event autoPlay is an event thatcauses a script to automatically start executing when a disc is loaded.Event continuePlay causes a script to resume executing from the positionthat the script was stopped according to for example the resumeinformation 324 when a disc is loaded.

There are programs that are executed when events shown in FIG. 12 occur.These programs corresponding to the events are referred to as eventhandlers. Events and event handlers can be correlated using for examplenames. For example, event handler names are created by adding a prefix“on” to event names. FIG. 13 and FIG. 14 show examples of eventhandlers. When the content creator describes the contents of eventhandlers, the UMD video player can perform various operations that thecontent creator intends.

FIG. 13 shows examples of events that the movie player 300 has andcorresponding event handlers. Events shown in FIG. 13 correspond to theevent 312 shown in FIG. 2. The movie player 300 informs the script layer302 of the events shown in FIG. 13. The event handlers are kinds ofinterfaces. The contents of the event handlers are implemented by thecontent creator using the script language. Since the event handlers havesuch a structure, when events occur, operations that the content creatorintends can be accomplished.

Event mark and event handler onMark( ) are executed when an event markis detected. An event mark is embedded in for example a play list. Whilethe movie player 300 is reproducing the play list, the movie player 300detects a play list from the play list. When the movie player 300detects an event mark, the movie player 300 informs the script layer 302of event mark. The script layer 302 executes event handler onMark( )corresponding to event mark. Likewise, event playListEnd and eventhandler onPlayListEnd( ) are executed when the reproduction of a playlist is completed. Event chapter and event handler onChapter( ) areexecuted when a chapter mark is detected. A chapter mark is embedded infor example a play list and detected by the movie player 300 while it isreproducing the play list.

Event angleChange and event handler onAngleChange( ) are executed whenthe angle change is designated by a user's operation. For example, whenkey input VK_ANGLE is input to the native implementation platform 301 bythe user's operation as the user's input 310, the native implementationplatform 301 converts the user's input 310 into command uo_angleChange() and supplies it to the movie player 300. The movie player 300generates event angleChange corresponding to command uo_angleChange andsupplies event angleChange to the script layer 302. The script layer 302executes event handler onAngleChange( ) corresponding to eventangleChange. Likewise, event audiochange and event handleronAudioChange( ) are executed when the audio change is designated by auser's operation. Event subtitleChange and event handleronSubtileChange( ) are executed when the subtitle change is designatedby a user's operation.

FIG. 14 shows examples of event handlers that the system object has. Theevent handlers shown in FIG. 14 are event handlers that the nativeimplementation platform 301 has in advance. The native implementationplatform 301 informs the script layer 302 of the event handlers.

Event menu and event handler onMenu( ) jump to a menu. Event menu is anevent of which the native implementation platform 301 informs the scriptlayer 302 when the menu key is pressed by a user's operation. The scriptlayer 302 receives the event, executes the corresponding event handleronMenu( ), and arranges and displays GUI parts that compose a menuscreen with event handler onMenu( ). Event exit and event handleronExit( ) are an event and a corresponding event handler that the nativeimplementation platform 301 generates when it completes the UMD videoapplication.

When a user' operation or the like designates the completion of theoperation of the UMD video player, the native implementation platform301 informs the script layer 302 of event exit. When the script layer302 receives event exit, the script performs an exit process with eventhandler onExit( ). Event autoPlay, event handler onAutoPlay( ), eventcontinuePlay, and event handler onContinuePlay( ) start executingcorresponding scripts.

Besides event handlers for the system object, there are event handlersfor buttons. However, event handlers for buttons do not closely relateto the present invention, their description will be omitted.

Next, with reference to a flow chart shown in FIG. 15, an example of aprocess that executes a provided program upon occurrence of a user'sinput event will be described in brief. FIG. 15 shows an example ofwhich while the UMD video player is normally reproducing data from adisc, when the user presses the “next” key to causes the UMD videoplayer to reproduce the next chapter, the UMD video player jumps to thenext chapter according to the key input, starts reproducing the nextchapter, and displays a prepared message on the screen.

While the UMD video player is normally reproducing data from the disc,when the user presses the key “next” on the remote control commander ofthe UMD video player (at step S10), key VK_NEXT is supplied as theuser's input 310 to the native implementation platform 301. The nativeimplementation platform 301 generates user command uo_playNextChapter( )corresponding to the user's input 310 (at step S11). The nativeimplementation platform 301 informs the movie player 300 of user commanduo_playNextChapter( ).

When the movie player 300 receives command uo_playNextChapter( ), themovie player 300 searches the database 320 for the position of the nextchapter mark based on the current reproduction position corresponding toplay list information (at step S12). At step S13, it is determinedwhether the next chapter mark exists. When the determined resultrepresents that the next chapter mark does not exist, the movie player300 does not perform the chapter jump operation, but continues thecurrent reproduction operation.

In contrast, when the determined result at step S13 represents that thenext chapter mark exists, the flow advances to step S14. At step S14,the movie player 300 stops the current reproduction operation andobtains the byte position of the next chapter mark in the clip AV streamfile from feature point information of the clip information file of thedatabase 320. At step S15, the movie player 300 accesses the obtainedbyte position of the file and starts reproducing the stream from theposition.

After step S16, a process that displays a message that informs the userthat the chapter was changed on the screen is performed. When thechapter is changed and the reproduction is started from the beginning ofthe chapter, event chapter occurs (at step S16). For example, the movieplayer 300 detects the chapter mark at the beginning of the chapter,event chapter occurs. The movie player 300 informs the script layer 302of event chapter. In addition to the event, the movie player 300 alsoinforms the script layer 302 of the chapter number of the chapter to bejumped. The script layer 302 starts executing an event handlercorresponding to the informed event, for example event handleronChapter( ) (at step S17).

In this example, it is assumed that an operation that displays a messagethat represents that the chapter was changed on the screen is describedin the event handler. A script of the script layer 302 executes theevent handler, obtains the chapter number of which the movie player 300informed the script layer 302 when the event occurred (at step S18), andcauses the native implementation platform 301 to display a predeterminedmessage that represents for example the beginning of the obtainedchapter number on the screen. According to the command, the nativeimplementation platform 301 displays the message on the screen (at stepS19) and completes the process of the event handler (at step S20).

In the foregoing process, when the user operates the key “next” thatcauses the movie player 300 to start reproducing the next chapter, themovie player 300 performs the chapter jump operation and displays amessage that represents the beginning of the chapter on the screen whenthe movie player 300 starts reproducing the next chapter to be jumped.

Thus, the user's input event causes the state of the movie player 300 tochange. In addition, the user's input event causes a new event to occur.With new events, the movie player 300 can perform various processes.

FIG. 16 shows a process after a disc is loaded into the UMD video playeruntil the disc is ejected therefrom. In FIG. 17, hatched steps representstates in which a script is being executed.

When the user places the disc in a predetermined position of the UMDvideo player, it loads the disc according to a predetermined operationso that the UMD video player can reproduce video data from the disc (atstep S30). When the disc is loaded, the native implementation platform301 references the resume information 324 and loads continuousreproduction information corresponding to the disc from the resumeinformation 324 (at step S31).

Thereafter, the resume information 324 corresponding to the disc isreferenced. It is determined whether the continuous reproductioninformation exists (at step S32). When the continuous reproductioninformation exists, the native implementation platform 301 informs thescript layer of event continuePlay. The script layer 302 executes eventhandler onContinuePlay corresponding to the informed event continuePlay(at step S33). When the determined result at step S32 represents thatthe continuous reproduction information corresponding to the disc doesnot exist, the flow advances to step S34. At step S34, the nativeimplementation platform 301 informs the script layer 302 of eventautoPlay. The script layer 302 executes event handler onAutoPlaycorresponding to event autoPlay.

At step S35, the reproduction operation for the disc and otheroperations are preformed according to the contents of event handleronAutoPlay and event handler onContinuePlay. An event that occurscorresponding to the reproduction operation for the disc and an eventhandler corresponding to the event are executed.

When the native implementation platform 301 generates event exit, theflow advances to step S36. At step S36, the script layer 302 executesevent handler onExit corresponding to event exit. Event handler onexitexecutes a process that completes the UMD video application. Event exitis generated by the native implementation platform 301 according to theuser's input 310 as a predetermined operation on for example the remotecontrol commander.

When the script process according to event handler onExit is completed,the native implementation platform 301 operates. At step S37, the movieplayer 300 executes a process that stops the reproduction operation. Atthis point, the state that exists immediately before the movie player300 stops the reproduction operation is stored as continuousreproduction information in the resume information 324. The reproductionoperation for the disc is completed (at step S38). When the reproductionoperation for the same disc is not preformed (at step S39), the flowadvances to step S40. At step S40, the native implementation platform301 ejects the disc and completes the sequence of steps of the process.When the reproduction operation for the same disc is performed, the flowreturns to step S31.

FIG. 17 shows an example of the structure of a script file. As shown inFIG. 1, a script file is file “SCRIPT.DAT” that composes the scriptlayer 302. A script file is composed of an event handler group and amain process portion. The event handler group is composed of one or aplurality of event handlers. Whenever the script layer 302 is informedof occurrence of an event, an event handler corresponding to theinformed event is retrieved and executed. The main process portiondescribes definitions of global variables used in event handlers. Themain process portion is initially executed one time.

FIG. 18 shows an example of a procedure that executes event handleronAutoPlay( ). When the user loads a disc into the UMD video player 300and causes it to perform the reproduction operation for the disc fromthe beginning (at step S50), the movie player 300 performs thisprocedure. At step S51, the native implementation platform 301determines whether the script contains event handler onAutoPlay( ). Whenthe script contains event handler onAutoPlay( ), the nativeimplementation platform 301 informs the script layer 302 of eventautoPlay (at step S52). At step S54, the script layer 302 executes eventhandler onAutoPlay( ). Thus, the movie player 300 automatically startsreproducing data from the loaded disc.

In contrast, when the determined result at step S51 represents that thescript does not contain event handler onAutoPlay( ), the flow advancesto step S53. The native implementation platform 301 informs the scriptlayer 302 of event exit. In this case, when the user operates the menukey for the reproduction operation on the menu screen implemented in thenative implementation platform 301, the movie player 300 startsreproducing data from the disc. When the script layer 302 has eventhandler onExit( ), the script layer 302 executes event handler onExit().

FIG. 19 shows an example of a procedure that executes event handleronContinuePlay( ). When the user loads a disc into the UMD video playerand causes the movie player 300 to perform the continuous reproductionoperation (at step S60), the movie player 300 performs this procedure.At step S61, the native implementation platform 301 determines whetherthe resume information 324 corresponding to the loaded disc exists. Whenthe resume information 324 does not exist, the flow advances to stepS62. At step S62, the movie player 300 performs the reproductionoperation for the disc from the beginning.

When the resume information 324 corresponding to the loaded disc exists,the flow advances to step S63. At step S63, the native implementationplatform 301 determines whether the script contains event handleronContinuePlay( ). When the script contains event handleronContinuePlay( ), the native implementation platform 301 informs thescript layer 302 of event handler onContinuePlay( ). Accordingly, thescript layer 302 executes event handler onContinuePlay( ) (at step S64).Thus, the movie player 300 resumes the reproduction for the loaded discaccording to event handler onContinuePlay( ).

In contrast, when the determined result at step S63 represents that thescript does not contain event handler onContinuePlay( ), the flowadvances to step S65. At step S65, the native implementation platform301 executes default event handler onContinuePlay( ). The default eventhandler onContinuePlay( ) simply starts the reproduction operation fromthe last reproduction end position according to for example the resumeinformation 324.

User interfaces of event handler onAutoPlay and event handleronContinuePlay are not limited to those examples. Instead, variousmethods may be used. For example, in FIG. 19, at step S60, after theuser causes the movie player 300 to perform the continuous reproductionoperation, the native implementation platform 301 determines whether theresume information 324 corresponding to the loaded disc exists. Instead,inversely, first, the native implementation platform 301 may determinewhether the resume information 324 corresponding to the loaded discexists. When the resume information 324 exists, the nativeimplementation platform 301 may ask the user whether to perform thecontinuous reproduction operation.

FIG. 20 shows an example of a process preformed upon completion of thereproduction operation. While the movie player 300 is performing thereproduction operation for a disc, when the user causes the movie player300 to stop the reproduction operation (at step S70), the movie player300 performs this process. When the user's input 310 that causes themovie player 300 to stop the reproduction operation is input to thenative implementation platform 301, it starts an exit process (at stepS71). The exist process is composed of for example the following threesteps:

(1) restrains new events from occurring,

(2) discards event handlers that have been queued, and

(3) issues control command uo_stop( ) to the movie player 300.

The native implementation platform 301 executes the exit process at stepS71. After the native implementation platform 301 stops the execution ofthe current event handler (at step S72), the flow advances to step S73.At step S73, the native implementation platform 301 informs the scriptlayer 302 of event exit. Accordingly, the script layer 302 executesonExit( ) (at step S74). Event handler onExit( ) executes for example apredetermined post process performed upon completion of the reproductionoperation and method setUserData that stores user's setting data.

At step S75, the native implementation platform 301 performs the exitprocess. In the exit process, the native implementation platform 301stores continuous information to for example a nonvolatile memory(namely, a backup of the state that exists immediately before thereproduction operation is completed to the resume information 324) andcauses the system menu to appear on the screen.

The player model can reproduce video data, audio data, and subtitledata. Since events that the content creator intended occur atreproduction times that he or she intended and corresponding eventhandlers that he or she intended are executed, operations that he or sheintended can be accomplished. In addition, when the user operates theUMD video player that is performing the reproduction operation for adisc, the native implementation platform 301 informs the movie player300 of a command corresponding to the user's operation so that the stateof the player is changed to the state that the user intended. Inaddition, the native implementation platform 301 informs the scriptlayer 302 of an event corresponding to the user's input. As a result,the script layer 302 can accomplish the operations that the contentcreator intended corresponding to user's operations. When the playermodel has this structure, the user can interactively operate the videoplayer to reproduce video data, audio data, and subtitle data.

5. Example of Script Program

Next, an example of a script program of the script layer 302 will bedescribed. It is assumed that the content creator created a flow ofcontent reproduction as shown in FIG. 21. The content shown in FIG. 21has as display elements play lists 400 and 401, a top menu 402, and amessage 403. The play list 400 is used to display a warning message thatis automatically displayed when a disc is loaded. The play list 401 is amain part of a movie as an example of the content. The top menu 402 hasGUI parts such as buttons with which the user causes the play list 401to be reproduced. The message 403 is displayed at any reproduction timeof the play list 401.

In addition, in the structure shown in FIG. 21, several event handlersare provided. When a disc is loaded into the UMD video player, eventhandler onAutoPlay( ) automatically reproduces the play list 400 fromthe disc and displays a warning message on the screen. Event handleronPlayListEnd( ) is an event handler that is called when thereproduction of the play list is completed. In the example shown in FIG.21, when the reproduction of the play list 400 and the play list 401 iscompleted, event handler onPlayListEnd( ) is called. In other words,event handler onPlayListEnd( ) determines what play list's reproductionis completed. When the reproduction of the play list 400 is completed,event handler onPlayListEnd( ) starts the reproduction of the play list401. When the reproduction of the play list 401 is completed, eventhandler onPlayListEnd calls the top menu 402.

Event handler onMenu( ) is called when the user operates the menu key.Event handler onMenu( ) calls the top menu 402 and displays it on thescreen. Event handler onMark( ) is executed when a reproduction timedesignated by mark Mark elapsed. In the example shown in FIG. 21, markMark is set in the play list 401. When the play list 401 is reproducedand the reproduction time designated by mark Mark elapses, the message403 is displayed on the screen.

In the example shown in FIG. 21, when the disc is loaded into the UMDvideo player, event handler onAutoPlay is called. Event handleronAutoPlay reproduces the play list 400 and displays a warning message.After the reproduction time of the play list 400 has elapsed, at the endof the play list 400, event handler onPlayListEnd is called. Eventhandler onPlayListEnd determines that the play list 400 has beencompletely reproduced and reproduces the next play list 401. When theuser operates the menu key while the play list 401 is being reproduced,event handler onMenu is called. Event handler onMenu displays the topmenu 402 on the screen. Event handler onMenu starts reproducing the playlist 401 from the beginning corresponding to a predetermined operationon the top menu 402. When the reproduction time of the play list 401 haselapsed for the time designated by mark Mark, event handler onMark iscalled. Event handler onMark displays the message 403 on the screen.When the play list 401 has been completely reproduced, event handleronPlayListEnd is called. Event handler determines that the play list 401has been completely reproduced and displays the top menu 402 on thescreen.

FIG. 22 shows an example of a script program that accomplishes theoperation shown in FIG. 21. As described above, the script program hasevent handlers and executes them upon occurrence of correspondingevents. The script program is stored in file “SCRIPT.DAT” that will bedescribed later.

Method “movieplayer.play( )” causes the movie player 300 to reproduce aplay list. A play list number to be reproduced is described inparentheses ( ) as an argument. When the play list has been reproduced,event playListEnd occurs. When event playListEnd occurs, the scriptcalls event handler movieplayer.onPlayListEnd( ). At this point, inaddition to event playListEnd, object event_info is supplied to thescript. The play list number of the play list that has been completelyreproduced and so forth are stored in object event_info. The script canchange the next operation corresponding to the content of objectevent_info.

6. File Management Structure

Next, with reference to FIG. 23, the file management structure accordingto the UMD video standard will be described. Files are hierarchicallymanaged in a directory structure and recorded on a disc. A disc filesystem standardized by International Organization for Standardization(ISO) 9660 or Universal Disk Format (UDF) may be used.

File “TITLEID.DAT” and directory “VIDEO” are placed under the rootdirectory. Directory “RESOURCE,” directory “CLIP,” directory “STREAM,”and file “PLAYLIST.DAT” are placed under directory “VIDEO.”

File “TITLEID.DAT” is a file that stores a title identifier that differsin each title (type of content). One disk has one file “TITLEID.DAT.”

File “SCRIPT.DAT” is placed under directory “RESOURCE.” As describedabove, file “SCRIPT.DAT” stores a script program that composes thescript layer 302. Normally, file “SCRIPT.DAT” as one file is placedunder directory “RESOURCE.” Instead, a plurality of files “SCRIPT.DAT”may be placed under directory “RESOURCE.” In this case, parts of thefile names are changed so that they become unique. A plurality of files“SCRIPT.DAT” are used for different display languages. In this case,however, one file “SCRIPT.DAT” is used at a time.

At least one clip information file is placed under directory “CLIP.” Aclip information file has a file name composed of a character stringportion having several to five characters such as “00001” (in thisexample, numerals), a period as a delimiter, and an extension portionsuch as “CLP.” Extension portion “CLP” represents that the file is aclip information file.

At least one clip AV stream file is placed under directory “STREAM.” Aclip AV stream file has a file name composed of a character stringportion having several to five characters such as “00001” (in thisexample, numerals), a period as a delimiter, and an extension portionsuch as “PS.” Extension portion “PS” represents that the file is a clipAV stream file. According to the embodiment of the present invention, aclip AV stream file is an MPEG2 (Moving Pictures Experts Group 2)program stream of which a video stream, an audio stream, and a subtitlestream are multiplexed and stored in a file identified by extensionportion “PS.”

As described above, a clip AV stream file is a file of which video dataand audio data are compression-encoded and time-division multiplexed.Thus, when the clip AV stream file is read and decoded, video data andaudio data are obtained. A clip information file is a file thatdescribes the characteristics of a clip AV stream file. Thus, a clipinformation file and a clip AV stream file are correlated. According tothe embodiment of the present invention, since the character stringportions having several to five characters of the file names of the clipinformation file and the clip AV stream file are the same, therelationship therebetween can be easily obtained.

File “SCRIPT.DAT” is a script file that describes a script program. File“SCRIPT.DAT” stores a program that causes reproduction states for a discto be interactively changed according to the embodiment of the presentinvention. File “SCRIPT.DAT” is read before other files are read fromthe disc.

File “PLAYLIST.DAT” is a play list file that describes a play list thatdesignates the reproduction order of a clip AV stream. Next, withreference to FIG. 24 to FIG. 26, the internal structure of file“PLAYLIST.DAT” will be described. FIG. 24 shows an example of syntaxthat represents the entire structure of file “PLAYLIST.DAT.” In thisexample, the syntax is described in the C language, which is used as adescriptive language for programs of computer devices. This applies totables that represent other syntaxes.

Field name_length has a data length of 8 bits and represents the lengthof the name assigned to the play list file. Field name_string has a datalength of 255 bytes and represents the name assigned to the play listfile. In field name_string, the area from the beginning for the bytelength represented by field name_length is used as a valid name. Whenthe value of field “name_length” is “10,” 10 bytes from the beginning offield name_string is interpreted as a valid name.

Field number_of_PlayList has a data length of 16 bits and represents thenumber of blocks PlayList( ) that follow. Field number_of_PlayLists isfollowed by a for loop. The for loop describes blocks PlayList( )corresponding to field number_of_PlayLists. Block PlayList( ) is a playlist itself.

Next, an example of the internal structure of block PlayList( ) will bedescribed. Block PlayList( ) starts with field PlayList_data_length.Field PlayList_data_length has a data length of 32 bits and representsthe data length of block PlayList( ), including fieldPlayList_data_length. Field PlayList_data_length is followed by fieldreserved_for_word_alignment having a data length of 15 bits and flagcapture_enable_flag_PlayList having a data length of 1 bit. Fieldreserved_for_word_alignment and flag capture_enable_flag_PlayList havinga data length of 1 bit align data at a 16-bit position in blockPlayList( ).

Flag capture_enable_flag_PlayList is a flag that represents whether amoving picture that belongs to block PlayList( ) including flagcapture_enable_flag_PlayList is permitted to be secondarily used. Whenthe value of flag capture_enable_flag_PlayList is for example “1,” itrepresents that the moving picture that belongs to PlayList( ) ispermitted to be secondarily used in the player.

In the foregoing example, flag capture_enable_flag_PlayList has a datalength of 1 bit. Instead, flag capture_enable_flag_PlayList may have adata length of a plurality of bits that describe a plurality ofsecondary use permission levels. For example, flagcapture_enable_flag_PlayList may have a data length of 2 bits. In thiscase, when the value of the flag is “0,” the movie picture may not beperfectly prohibited from being secondarily used. When the value of theflag is “1,” the movie picture may be permitted to be secondarily usedin the case that the movie picture is compression-encoded with apredetermined resolution or lower such as 64 pixels×64 lines. When thevalue of the flag is “2,” the moving picture may be perfectly permittedto be secondarily used without any restriction. Instead, when the valueof bit 0 of the flag is “0,” the moving picture may be permitted to besecondarily used in the content reproduction application. When the valueof bit 1 of the flag is “1,” the moving picture may be permitted to besecondarily used in another application (for example, wall paper imageor a screen saver) in the movie player. In this case, the values of bits0 and 1 of the flag may be used in combination.

Field PlayList_name_length has a data length of 8 bits and representsthe length of the name assigned to block PlayList( ). FieldPlayList_name_string has a data length of 255 bits and represents thename assigned to block PlayList( ). In Field PlayList_name_string, thearea from the beginning for the byte length represented by fieldPlayList_name_string is used as a valid name.

Field number_of_PlayItems has a data length of 16 bits and representsthe number of blocks PlayItem( ) that follow. Field number_of_PlayItemsis followed by a for loop. The for loop describes blocks PlayItem( )corresponding to field number_of_PlayItems. Block PlayItem( ) is a playitem itself.

Blocks PlayItem( ) of block PlayList are assigned identificationinformation (ID). For example, block PlayItem( ) described at thebeginning of block PlayList( ) is assigned for example 0. BlocksPlayItem( ) are assigned serial numbers in the order of appearance suchas 1, 2, and so forth. The serial numbers are used as identificationinformation of blocks PlayItem( ). Argument i of the for loop repeatedfor blocks PlayItem( ) can be used as identification information forblocks PlayItem( ). Block PlayItem( ) is followed by block PlayListMark().

Next, with reference to FIG. 25, an example of the internal structure ofblock PlayItem( ) will be described. Block PlayItem( ) starts with fieldlength. Field length has a data length of 16 bits and represents thelength of block PlayItem( ). Field length is followed by fieldClip_Information_file_name_length. FieldClip_Information_file_name_length has a data length of 16 bits andrepresents the length of the name of the clip information filecorresponding to block PlayItem( ). Field Clip_Information_file_name hasa variable data length in bytes and represents the name of the clipinformation file corresponding to block PlayItem( ). In fieldClip_Information_file_name, the area from the beginning for the bytelength represented by field Clip_Information_file_name is used as avalid name. When a clip information file is designated by fieldClip_Information_file_name, a clip AV stream file corresponding to theclip information file can be identified according to the above-describedrelationship of the file names.

Field IN_time and field OUT_time have a data length of 32 bits each.Field IN_time and field OUT_time are time information that designate thereproduction start position and the reproduction end position of a clipAV stream file corresponding to the clip information file designated byfield Clip_Information_file_name in block PlayItem( ). With fieldIN_time and field OUT_time, the reproduction start position other thanthe beginning of the clip AV stream file can be designated. Likewise,with field IN_time and field OUT_time, the reproduction end positionother than the end of the clip AV stream file can be designated.

Next, with reference to FIG. 26, an example of the internal structure ofblock PlayListMark( ) will be described. Block PlayListMark( ) startswith field length. Field length has a data length of 32 bits andrepresents the length of block PlayListMark( ). Field length is followedby field number_of_PlayList_marks. Field number_of_PlayList_marks has adata length of 16 bits and represents the number of blocks Mark( ).Field number_of_PlayList_marks is followed by a for loop. The for loopdescribes blocks Mark( ) corresponding to fieldnumber_of_PlayList_marks.

Next, an example of the internal structure of block Mark( ) will bedescribed. Block Mark( ) starts with field mark_type. Field mark_typehas a data length of 8 bits and represents the type of block Mark( )including field mark_type. According to the embodiment, as shown in FIG.27, three types of marks, a chapter mark, an index mark, and an eventmark are defined. A chapter is a search unit that divides a play list(block PlayList( )). An index is a search unit that divides a chapter. Achapter mark and an index mark respectively represent a chapter positionand an index position as time information. An event mark is a mark thatcause an event to occur.

Field mark_name_length has a data length of 8 bits and represents thelength of the name assigned to block Mark( ). Field mark_name_string atthe last line of block Mark( ) represents the name assigned to blockMark( ). In field mark_name_string, the area from the beginning for thebyte length represented by field mark_name_length is used as a validname.

Four elements of field ref_to_PlayItem_id, field mark_time_stamp, fieldentry_ES_stream_id, and field entry_ES_private_stream_id correlate blockMark( ) defined in block PlayList( ) with a clip AV stream file. Inother words, field ref_to_PlayItem_id has a data length of 16 bits andrepresents identification information of block PlayItem( ). Thus, fieldref_to_PlayItem_id identifies a clip information file and a clip AVstream file.

Field mark_time_stamp has a data length of 32 bits and designates thetime of a mark in a clip AV stream file. Next, with reference to FIG.28, field mark_time_stamp will be described in brief. In FIG. 28, a playlist is composed of three play items assigned 0, 1, and 2 (PlayItem(#0),PlayItem(#1), and PlayItem(#2)). Time t₀ of the play list is included inplay item 1 (PlayItem(#1)). Play items 0, 1, and 2 correspond to programstreams A, B, and C of clip AV stream files through clip informationfiles, respectively.

In this case, when a mark is designated to time t₀ of the play list, thevalue of field ref_to_PlayItem_id is “1” that represents play item 1including time t₀. In addition, time corresponding to time t₀ in thecorresponding clip AV stream file is described in field mark_time_stamp.

Returning to the description of FIG. 26, field mark_time_stamp isfollowed by field entry_ES_stream_id and fieldentry_ES_private_stream_id. Field entry_ES_stream_id and fieldentry_ES_private_stream_id have a data length of 8 bits each. When blockMark( ) is correlated with a predetermined elementary stream, fieldentry_ES_stream_id and field entry_ES_private_stream_id identify theelementary stream. Field entry_ES_stream_id and fieldentry_ES_private_stream_id represent a stream ID (stream_id) of packets(packet( )) in which elementary streams are multiplexed and a privatestream ID (private_stream_id) of a private packet header(private_packet_header( )), respectively.

The stream ID (stream_id) of the packets (packet( )) and the privatestream ID (private_stream_id) of the private packet header(private_packet_header( )) are based on provisions on a program streamof the MPEG2 system.

Field entry_ES_stream_id and field entry_ES_private_stream_id are usedwhen the chapter structure of clip AV stream #0 is different from thatof clip AV stream #1. When block Mark( ) is not correlated with apredetermined elementary stream, the values of these two fields are “0.”

Next, with reference to FIG. 29 to FIG. 33, the internal structure of aclip information file will be described. As described above, clipinformation file “XXXXX.CLP” describes the characteristics and so forthof corresponding clip AV stream file “XXXXX.PS” placed under directory“STREAM.”

FIG. 29 shows an example of syntax that represents the entire structureof clip AV stream file “XXXXX.CLP.” Clip AV stream file “XXXXX.CLP”starts with field presentation_start_time and fieldpresentation_end_time. Field presentation_start_time and fieldpresentation_end_time have a data length of 32 bits each and representthe times of the beginning and end of the corresponding clip AV streamfile. As time information, the presentation time stamp (PTS) of theMPEG2 system may be used. PTS has an accuracy of 90 kHz.

Field presentation_start_time and field presentation_end_time arefollowed by field reserved_for_word_alignment that has a data length of7 bits and flag capture_enable_flag_Clip that has a data length of 1bits. Field reserved_for_word_alignment and flagcapture_enable_flag_Clip having a data length of 1 bit align data at a16-bit position in file “XXXXX.CLP.” Flag capture_enable_flag_Clip is aflag that represents whether a moving picture contained in a clip AVstream file corresponding to file “XXXXX.CLP” is permitted to besecondarily used. For example, when the value of flagcapture_enable_flag_Clip is for example “1,” it represents that themoving picture of the clip AV stream file corresponding to file“XXXXX.CLP” is permitted to be secondarily used in the video player.

Field number_of_streams has a data length of 8 bits and represents thenumber of blocks StreamInfo( ) that follow. Field number_of_streams isfollowed by a for loop. The for loop describes blocks StreamInfo( )corresponding to field number_of_streams. The for loop is followed byblock EP_map( ).

Next, an example of the internal structure of block StreamInfo( ) willbe described. Block StreamInfo( ) starts with field length. Field lengthhas a data length of 16 bits and represents the length of blockStreamInfo( ). Field length is followed by field stream_id and fieldprivate_stream that have a data length of 8 bits each. As shown in FIG.30, block StreamInfo( ) is correlated with elementary streams. In theexample shown in FIG. 30, when the value of field stream_id of blockStreamInfo( ) is in the range from “0xE0” to “0xEF,” block StreamInfo( )is correlated with a video stream. When the value of field stream_id ofblock StreamInfo( ) is “0xBD,” block StreamInfo( ) is correlated with anAdaptive Transform Acoustic Coding (ATRAC) audio stream, a Linear PulseCode Modulation (LPCM) audio stream, or a subtitle stream. When thevalue of field private_stream_id of block StreamInfo( ) is in the rangefrom “0x00” to “0x0F,” from “0x10” to “0x1F,” and from “0x80” to “0x9F,”block StreamInfo( ) is correlated with an ATRAC audio stream, an LPCMaudio stream, and a subtitle stream, respectively.

In FIG. 30, “0x” represents hexadecimal notation. This notation appliesto the following description.

Block StreamInfo( ) mainly describes two types of information, the firsttype not varying in a stream, the second type varying in a stream.Information that does not vary in a stream is described in blockStaticInfo( ), whereas information that varies in a stream is describedin block DynamicInfo( ) with change points designated with timeinformation.

Block StaticInfo( ) is followed by field reserved_for_word_alignmentthat has a data length of 8 bits. Field reserved_for_word_alignmentaligns data in a byte in block StreamInfo( ). Fieldreserved_for_word_alignment is followed by field number_of_DynamicInfo.Field number_of_DynamicInfo has a data length of 8 bits and representsthe number of blocks DynamicInfo( ) that follow. Fieldnumber_of_DynamicInfo is followed by a for loop. The for loop describesfields pts_change_point and blocks DynamicInfo( ) corresponding to fieldnumber_of_DynamicInfo.

Field pts_change_point has a data length of 32 bits and represents atime at which information of block DynamicInfo( ) becomes valid withPTS. A time at which each stream starts is represented by fieldpts_change_point and equal to field presentation_start_time defined infile “XXXXX.CLP.”

Next, with reference to FIG. 31, an example of the internal structure ofblock StaticInfo( ) will be described. The content of block StaticInfo() depends on the type of the corresponding elementary stream. The typeof the corresponding elementary stream can be identified by the valuesof field stream_id and field private_stream_id as shown in FIG. 30. FIG.31 shows block StaticInfo( ) whose content varies depending on the typeof an elementary stream, which is a video stream, an audio stream, or asubtitle using an if statement. Next, block StaticInfo( ) will bedescribed according to the types of elementary streams.

When the elementary stream is a video stream, block StaticInfo( ) iscomposed of field picture_size, field frame_rate, and flag cc_flag.Field picture_size and field frame_rate each have a data length of 4bits each. Flag cc_flag has a data length of 1 bit. Field picture_sizeand field frame_rate represent the picture size and the frame frequencyof the video stream. Flag cc_flag represents whether the video streamcontains a closed caption. When the value of flag cc_flag is for example“1,” the video stream contains a closed caption. Fieldreserved_for_word_alignment aligns data in 16 bits.

When the elementary stream is an audio stream, block StaticInfo( ) iscomposed of field audio_language_code having a data length of 16 bits,field channel_configuration having a data length of 8 bits, flaglfe_existance having a data length of 1 bit, and fieldsampling_frequency having a data length of 4 bits. Fieldaudio_language_code represents a language code contained in the audiostream. Field channel_configuration represents a channel attribute ofaudio data such as monaural, stereo, multi-channel, or the like. Fieldlfe_existance represents whether the audio stream contains a lowfrequency emphasis channel. When the value of field lfe_existance is forexample “1,” the audio stream contains the low frequency emphasischannel. Field sampling_frequency represents the sampling frequency ofaudio data. Field reserved_for_word_alignment is aligned at a 16-bitposition.

When the elementary stream is a subtitle stream, block StaticInfo( ) iscomposed of field subtitle_language_code having a data length of 16 bitsand flag configurable_flag having a data length of 1 bit. Fieldsubtitle_language_code represents a language code contained in thesubtitle stream. Field subtitle_language_code represents whether thesubtitle stream is a normal subtitle or a subtitle for commentary (forexample, special subtitle for description of pictures). Flagconfigurable_flag represents whether the size and position of charactersof the subtitle stream that is displayed are permitted to be changed.When the value of flag configurable_flag is for example “1,” itrepresents that the size and position of characters of the subtitlestream that is displayed are permitted to be changed. Fieldreserved_for_word_alignment is aligned at a 16-bit position.

Next, with reference to FIG. 32, an example of the internal structure ofblock DynamicInfo( ) will be described. Block DynamicInfo( ) starts withfield reserved_for_word_alignment having a data length of 8 bits.Elements preceded by field reserved_for_word_alignment depend on thetype of the elementary stream. The type of the elementary stream can beidentified by field stream_id and field private_stream_id described inFIG. 30. In FIG. 32, block DynamicInfo( ) whose content varies dependingon the type of an elementary stream, which is a video stream, an audiostream, or a subtitle using an if statement. Next, block DynamicInfo( )will be described according to the type of elementary streams.

When the elementary stream is a video stream, block DynamicInfo( ) iscomposed of field display_aspect_ratio having a data length of 4 bits.Field display_aspect_ratio represents whether the display output aspectratio of video data is 16:9 or 4:3. Field reserved_for_word_alignmentaligns data in 16 bits.

When the elementary stream is an audio stream, block DynamicInfo( ) iscomposed of field channel_assignment having a data length of 4 bits.When the audio stream is composed of two channels, fieldchannel_assignment represents whether the output is a stereo or a dualmonaural. The dual monaural is used to reproduce audio data for examplein two languages. Field reserved_for_word_alignment aligns data in 16bits.

When the elementary stream is a subtitle stream, block DynamicInfo( ) iscomposed of field reserved_for_word_alignment. Fieldreserved_for_word_alignment aligns data in 16 bits. In other words, withrespect to a subtitle stream, block DynamicInfo( ) does not define anattribute that dynamically varies.

Next, with reference to FIG. 33, an example of the internal structure ofblock EP_map( ) will be described. Block EP_map( ) represents a validdecode start position (entry point) of a bit stream of each elementarystream with time information and position information. The positioninformation may be the minimum access unit for a recording medium onwhich an elementary stream is recorded. Each elementary stream can bedecoded from the position represented by block EP_map( ).

Since the valid decode start position of a fixed rate stream can becalculated, information such as block EP_map( ) is not necessary. On theother hand, for a variable rate stream and a stream whose data sizevaries in each access unit such as a stream according to the MPEG videocompression-encoding system, block EP_map( ) is information necessaryfor randomly accessing data.

Block EP_map( ) starts with field reserved_for_word_alignment having adata length of 8 bits. Field reserved_for_word_alignment aligns data in16 bits. Field reserved_for_word_alignment is followed by fieldnumber_of_stream_id_entries. Field number_of_stream_id_entries has adata length of 8 bits and represents the number of elementary streamsdescribed in block EP_map( ). A first for loop describes fieldsstream_id, fields private_stream_id, and fields number_of_EP_entriescorresponding to field number_of_stream_id_entries. In the first forloop, a second for loop describes fields PTS_EP_start and fieldsRPN_EP_start corresponding to field number_of_EP_entries.

The first for loop describes field stream_id and field private_stream_idthat have a data length of 8 bits each and identify the type of theelementary stream as shown in FIG. 30. Field stream_id and fieldprivate_stream_id are followed by field number_of_EP_entries. Fieldnumber_of_EP_entries has a data length of 32 bits and represents thenumber of entry points described in the elementary stream. The secondfor loop describes fields PTS_EP_start and fields RPN_EP_startcorresponding to field number_of_EP_entries.

Field PTS_EP_start and field RPN_EP_start have a data length of 32 bitseach and represent entry points themselves. Field PTS_EP_startrepresents a time of an entry point in a clip AV stream file with PTS.On the other hand, field RPN_EP_start represents the position of anentry point in a clip AV stream file in the unit of 2048 bytes.

According to the embodiment, one sector as a disc access unit is 2048bytes. Thus, field RPN_EP_start represents the position of an entrypoint of a clip AV stream file in sectors.

The valid reproduction start position of a video stream needs to beimmediately preceded by packet private_stream_(—)2. Packetprivate_stream_(—)2 is a packet that stores information that can be usedto decode a video stream. Thus, the position of an entry point of avideo stream is the position of pack pack( ) that stores packetprivate_stream_(—)2.

Block EP_map correlates times of a clip AV stream and positions of aclip AV stream file. Thus, with time information (time stamp) of anaccess point of a clip AV stream, the clip AV stream file can be easilysearched for a data address at which data are read. As a result, thedisc can be smoothly randomly accessed.

According to the embodiment, in block EP_map( ), sets of timeinformation and position information (sets of field PTS_EP_start andfield RPN_EP_start in the second for loop) for each elementary streamare pre-registered in the ascending order (descending order). In otherwords, time information and position information have been rearranged ina predetermined direction. Thus, a binary search can be performed forthe data.

According to the embodiment of the present invention, as describedabove, an elementary stream of a video stream is an elementary stream onthe basis of the MPEG2-Video standard. However, the present invention isnot limited to this example. For example, an elementary stream of avideo stream may be an elementary stream according to the MPEG4-Visualstandard or MPEG4-AVC standard. Likewise, according to the embodiment,as described above, an elementary stream of an audio stream is anelementary stream on the basis of the ATRAC audio system. However, thepresent invention is not limited to such an example. Instead, anelementary stream of an audio stream may be an elementary stream on thebasis of for example MPEG1/2/4 audio system.

7. Disc Reproducing Apparatus

Next, a disc reproducing apparatus according to an embodiment of thepresent invention will be described. FIG. 34 shows an example of thestructure of a disc reproducing apparatus 100 according to the presentinvention. Connected to a bus 111 are a central processing unit (CPU)112, a memory 113, a drive interface 114, an input interface 115, avideo decoder 116, an audio decoder 117, a video output interface 118,and an audio output interface 119. Each section of the disc reproducingapparatus 100 can exchange a video stream, an audio stream, variouscommands, data, and so forth with other sections through the bus 111.

In addition, a disc drive 102 is connected to the drive interface 114.The disc drive 102 exchanges data and commands with the bus 111 throughthe drive interface 114.

The CPU 112 has a read-only memory (ROM) and a random access memory(RAM) (not shown). The CPU 112 exchanges data and command with eachsection of the disc reproducing apparatus 100 through the bus 111according to a program and data pre-stored in the ROM and controls theentire disc reproducing apparatus 100. The RAM is used as a work memoryof the CPU 112.

Supplied to the input interface 115 is an input signal that is inputfrom an input device with which the user performs an input operation.The input device is for example a remote control commander with whichthe user remotely operates the disc reproducing apparatus 100 using forexample an infrared signal and keys disposed on the disc reproducingapparatus 100. The input interface 115 converts an input signal suppliedfrom the input device into a control signal for the CPU 112 and outputsthe control signal.

Recorded on a disc 101 in the format shown in FIG. 23 to FIG. 33 are aplay list, a script program, a clip information file, a clip AV streamfile, and so forth. When the disc 101 is loaded into the disc drive 102,it reproduce data from the disc 101 automatically or according to auser's input operation. A script file, a play list file, and a clipinformation file that are read from the disc 101 are supplied to the CPU112 and stored in for example a RAM of the CPU 112. The CPU 112 reads aclip AV stream file from the disc 101 according to data and a scriptprogram stored in the RAM.

The clip AV stream file that is read from the disc 101 is temporarilystored in the memory 113. The video decoder 116 decodes a video streamand a subtitle stream of the clip AV stream file stored in the memory113 according to a command received from the CPU 112. The CPU 112performs an image process such as an enlargement process or a reductionprocess for the decoded video data and subtitle data, a synthesizationprocess or an addition process for the video stream and subtitle stream,and obtains one stream of video data. The image process may be performedby the video decoder 116 and the video output interface 118. The videodata are buffered by the memory 113 and supplied to the video outputinterface 118. The video output interface 118 converts the suppliedvideo data into an analog video signal and supplies the analog videosignal to a video output terminal 120.

Likewise, the audio decoder 117 decodes an audio stream of the clip AVstream file stored in the memory 113 according to a command receivedfrom the CPU 112. The decoded audio data are buffered in the memory 113and supplied to the audio output interface 119. The audio outputinterface 119 converts the supplied audio data into for example ananalog audio signal and supplies the analog audio signal to an audiooutput terminal 121.

In the example, each section shown in FIG. 34 is composed of independenthardware. However, the present invention is not limited to this example.For example, the video decoder 116 and/or the audio decoder 117 may becomposed of software that operates on the CPU 112.

FIG. 35A and FIG. 35B are functional block diagrams describing theoperation of the disc reproducing apparatus 100 shown in FIG. 34 indetail. The disc reproducing apparatus 100 is mainly composed of anoperation system 201 and a video content reproduction section 210. Thevideo content reproduction section 210 is substantially a softwareprogram that operates on the operation system 201. Instead, the videocontent reproduction section 210 may be composed of software andhardware that integrally operate. In the following description, it isassumed that the video content reproduction section 210 is composed ofsoftware. In FIG. 35A and FIG. 35B, the disc drive 102 is omitted.

When the power of the disc reproducing apparatus 100 is turned on, theoperation system 201 initially starts up on the CPU 112 and performsnecessary processes such as initial settings for each section, and readsan application program (in this example, the video content reproductionsection 210) from the ROM. The operation system 201 provides basicservices such as reading of a file from the disc 101 and interpreting ofa file system for the video content reproduction section 210 while thevideo content reproduction section 210 is operating. For example, theoperation system 201 controls the disc drive 102 through the driveinterface 114 corresponding to a file read request supplied from thevideo content reproduction section 210 and reads data from the disc 101.The data that are read from the disc 101 are supplied to the videocontent reproduction section 210 under the control of the operationsystem 201.

The operation system 201 has a multitask process function that controlsa plurality of software modules virtually in parallel by for exampletime-division control. In other words, each module that composes thevideo content reproduction section 210 shown in FIG. 35A and FIG. 35Bcan be operated in parallel by the multitask process function of theoperation system 201.

Next, the operation of the video content reproduction section 210 willbe described more specifically. The video content reproduction section210 has more internal modules and accomplishes the following functions.

(1) The video content reproduction section 210 determines whether theloaded disc 101 is a disc according to the UMD video standard(hereinafter this disc is referred to as the UMD video disc).

(2) When the determined result represents that the loaded disc 101 isthe UMD video disc, the video content reproduction section 210 reads ascript file from the disc 101 and supplies the script file to a scriptcontrol module 211.

(3) When the determined result represents that the loaded disc 101 isthe UMD video disc, the video content reproduction section 210 alsoreads files that composes a database (namely, a play list file, a clipinformation file, and so forth) and supplies the files to a playercontrol module 212.

Next, the operations of the modules of the video content reproductionsection 210 will be described.

The script control module 211 interprets a script program described inscript file “SCRIPT.DAT” and executes it. As described in the playermodel, GUIs that create and output images of the menu screen, move thecursor corresponding to a user's input, and change the menu screen areaccomplished by a graphics process module 219 controlled according tothe script program. By executing the script program, the script controlmodule 211 can control the player control module 212.

The player control module 212 references database information stored infiles such as play list file “PLAYLIST.DAT” and clip information file“XXXXX.CLP” that are read from the disc 101 and performs the followingcontrols to reproduce video contents recorded on the disc 101.

(1) The player control module 212 analyzes database information such asa play list and clip information.

(2) The player control module 212 controls a content data supply module213, a decode control module 214, and a buffer control module 215.

(3) The player control module 212 performs player state change controlssuch as reproduction, reproduction stop, and reproduction pause and areproduction control process such as stream change according to acommand received from the script control module 211 or the inputinterface 115.(4) The player control module 212 obtains time information of a videostream that is being reproduced from the decode control module 214,displays time, and generates a mark event.

The content data supply module 213 reads content data such as a clip AVstream file from the disc 101 according to a command received from theplayer control module 212 and supplies the content data to the buffercontrol module 215. The buffer control module 215 stores the contentdata in the memory 113 as a substance 215A of the buffer. The contentdata supply module 213 controls the buffer control module 215 to supplythe content data stored in the memory 113 to a video decoder controlmodule 216, an audio decoder control module 217, and a subtitle decodercontrol module 218 according to requests therefrom. In addition, thecontent data supply module 213 reads content data from the disc 101 sothat the amount of content data stored under the control of the buffercontrol module 215 becomes a predetermined amount.

The decode control module 214 controls the operations of the videodecoder control module 216, the audio decoder control module 217, andthe subtitle decoder control module 218 according to a command receivedfrom the player control module 212. The decode control module 214 has aninternal clock function and controls the operations of the video decodercontrol module 216, the audio decoder control module 217, and thesubtitle decoder control module 218 so that video data and audio dataare synchronously output.

The buffer control module 215 exclusively uses a part of the memory 113as the substance 215A of the buffer. The buffer control module 215stores a data start pointer and a data write pointer. The buffer controlmodule 215 also has as internal modules a video read function, an audioread function, and a subtitle read function. The video read function hasa video read pointer. The video read function has a register that storesinformation au_information( ) as access unit information. The audio readfunction has an audio read pointer. The subtitle read function has asubtitle read pointer and a subtitle read function flag. The subtitleread function flag controls enabling/disabling of the subtitle readfunction according to a write value. When for example “1” is written tothe subtitle read function flag, the subtitle read function becomesenabled. When for example “0” is written to the subtitle read functionflag, the subtitle read function becomes disabled.

The video read function, the audio read function, and the subtitle readfunction, which are internal modules of the buffer control module 215,have demultiplexer functions that demultiplex a multiplexed clip AVstream, of which a video stream, an audio stream, and a subtitle streamhave been multiplexed, into these streams. According to the embodimentof the present invention, a plurality of elementary streams aremultiplexed according to time-division multiplying system and MPEG2system program stream format and thereby a clip AV stream is formed.Thus, the video read function, the audio read function, and the subtitleread function have demultiplexer functions for the MPEG2 system programstreams.

Consequently, the video read function reads the value of field stream_id(see FIG. 30) placed at a predetermined position of the video stream andholds the value. Likewise, the audio read function and the subtitle readfunction read the values of field stream_id and field private_stream_id(see FIG. 30) and hold the values. The values of field stream_id andfield private_stream_id are used to analyze the supplied bit stream.

The video decoder control module 216 causes the video read function ofthe buffer control module 215 to read one video access unit of the videostream from the memory 113 and supply the video access unit to the videodecoder 116. The video decoder control module 216 controls the videodecoder 116 to decode the video stream supplied to the video decoder 116in the access unit and generate video data. The video data are suppliedto the graphics process module 219.

Likewise, the audio decoder control module 217 causes the audio readfunction of the buffer control module 215 to read one audio access unitof the audio stream from the memory 113 and supply the audio stream unitto the audio decoder 117. According to the embodiment of the presentinvention, the access unit (audio frame) that composes an audio streamhas a predetermined fixed length. The audio decoder control module 217controls the audio decoder 117 to decode the audio stream supplied tothe audio decoder 117 in the access unit and generate audio data. Theaudio data are supplied to an audio output module 242.

The subtitle decoder control module 218 causes the subtitle readfunction of the buffer control module 215 to read one subtitle accessunit of the subtitle stream from the memory 113 and supply the subtitleaccess unit to the subtitle decoder control module 218. According to theembodiment of the present invention, the subtitle access unit thatcomposes the subtitle stream contains length information at thebeginning. The subtitle decoder control module 218 has a subtitle decodefunction that can decode the supplied subtitle stream and generatesubtitle image data. The subtitle image data are supplied to thegraphics process module 219.

As described above, the video data decoded by the video decoder 116under the control of the video decoder control module 216 and thesubtitle image data decoded by the subtitle decoder control module 218are supplied to the graphics process module 219. The graphics processmodule 219 adds the subtitle image data to the supplied video data andgenerates a video signal that is output. The graphics process module 219generates the menu image and the message image corresponding to acommand received from the script control module 211 and the playercontrol module 212 and overlays them with the output video signal.

For example, the graphics process module 219 performs an enlargementprocess and a reduction process for the supplied subtitle image data andadds the processed image data to the video data according to a commandreceived from the script control module 211.

In addition, the graphics process module 219 converts the aspect ratioof the output signal according to the aspect ratio of the predeterminedoutput video device and the output aspect ratio designated in thecontent reproduced from the disc 101. When the aspect ratio of theoutput video device is 16:9 and the output aspect ratio is 16:9, thegraphics process module 219 directly outputs the video data. When theoutput aspect ratio is 4:3, the graphics process module 219 performs asqueezing process that matches the height of the image with the heightof the screen of the output video device, inserts black portions intoleft and right sides of the image, and outputs the resultant image. Whenthe aspect ratio of the output video device is 4:3 and the output aspectratio is 4:3, the graphics process module 219 directly outputs the videodata. When the output aspect ratio is 16:9, the graphics process module219 performs a squeezing process that matches the width of the imagewith the width of the screen of the output video device, inserts blackportions into the upper and lower portions of the image, and outputs theresultant image.

The graphics process module 219 also performs a process that capturesthe video signal that is being processed according to a request from theplayer control module 212 and supplies the requested video signalthereto.

A video output module 241 exclusively uses a part of the memory 113 as afirst-in first-out (FIFO) buffer. The video output module 241temporarily stores video data processed by the graphics process module219 in the buffer and reads the video data therefrom at predeterminedtiming. The video data that are read from the buffer are output from thevideo output interface 118.

The audio output module 242 exclusively uses a part of the memory 113 asa FIFO buffer. The audio output module 242 stores audio data that areoutput from the audio output interface 119 to the buffer and reads theaudio data therefrom at predetermined timing. The audio data that areread from the buffer are output from the audio output interface 119.

When the audio mode of the content is dual monaural (for example,bilingual), the audio output module 242 outputs the audio data accordingto a predetermined audio output mode. When the audio output mode is“main audio,” the audio output module 242 copies audio data of the leftchannel in for example the memory 113 and outputs audio data of the leftchannel and audio data from the memory 113. Thus, the audio outputmodule 242 outputs audio data of only the left channel. When the audiooutput mode is “sub audio,” the audio output module 242 copies audiodata of the right channel in for example the memory 113 and outputsaudio data of the right channel and audio data from the memory 113.Thus, the audio output module 242 outputs audio data of only the rightchannel. When the audio output mode is “main and sub audio” or thecontent is stereo, the audio output module 242 directly outputs theaudio data.

The user can interactively sets the audio output mode on for example themenu screen that the video content reproduction section 210 generates.

A nonvolatile memory control module 250 writes data to an area whosedata are not erased after the operation of the video contentreproduction section 210 is completed (this area is referred to as anonvolatile area) and reads data therefrom according to a commandreceived from the player control module 212. The nonvolatile memorycontrol module 250 has a function that stores a plurality of sets ofdata Saved_Player_Status and data Saved_Player_Data with a key of atitle ID (Title_ID). The nonvolatile memory control module 250 stores asdata Saved_Player_Status data Backup_Player_Status that the playercontrol module 212 has. Data Backup_Player_Status corresponds to data offor example the player status 323B that exist immediately before theoperation of the player control module 212 is completed. DataSaved_Player_Status corresponds to the resume information 324. Inaddition, the nonvolatile memory control module 250 stores as dataSaved_User_Data data User_Data that the player control module 212 has.Data User_Data are predetermined data that the user sets to the playercontrol module 212.

When the disc reproducing apparatus 100 has a flash memory or the like,which is a nonvolatile memory, the nonvolatile memory control module 250correlatively stores a set of data Saved_Player_Status and dataSaved_User_Data with the title ID of the disc 101 in a predeterminedregion of the flash memory. The storage medium that the nonvolatilememory control module 250 stores data is not limited to a flash memory,but a hard disk or the like.

8. Automatic Selection of Audio and Subtitle Streams

Next, automatic selection of audio and subtitle streams according to anembodiment of the present invention will be described. According to thisembodiment, when a plurality of audio streams of different languages anda plurality of subtitle streams of differ languages have beenmultiplexed, an audio stream of a proper language is automaticallyselected. Likewise, a subtitle stream of a proper language isautomatically selected.

According to the present invention, in addition to the regular audiolanguage setting using language names such as “Japanese” and “English”,a status “original language” can be set. When the audio language settingof the player has been “original language”, an audio stream of a properlanguage is automatically selected. In addition, when subtitle and audiostreams are automatically selected, the case of which the languages ofaudio and subtitle streams are the same is prevented.

The “original language” represents a language in which content wascreated. For example, if content was created in Japan and the languagethereof is mainly Japanese, the original language is Japanese. Theoriginal language can be set on the content creator side.

Next, with reference to FIG. 36 to FIG. 38, automatic selection of audioand subtitle streams according to this embodiment of the presentinvention will be described in brief. In FIG. 36 to FIG. 38, it isassumed that in streams 501 contained in a disc, an audio stream denotedby (1) is the original language. In this example, the original languageof a subtitle is not defined.

As a first example, with reference to FIG. 36, the case of which inplayer setting 500, the language of audio is set to “original language”and the language of a subtitle is set to “Japanese” will be considered.In addition, it is assumed that content contained in a disc is a moviecreated in the United States and the streams 501 of the disc are twotypes of audio streams (1) English (=original language) and (2) Japaneseand two types of subtitle streams (1) English and (2) Japanese. In thiscase, streams 502 selected immediately after content is reproduced fromthe disc by the player are an audio stream of the original language (1)English and a subtitle stream of (2) Japanese. In the example shown inFIG. 36, since an audio stream and a subtitle stream are properlyselected, no problem occurs.

As a second example, as shown in FIG. 37, in the player setting 500, thelanguage of audio is set to “original language” and the language of asubtitle is set to “Japanese” that are the same as those of the firstexample. In addition, it is assumed that content recorded on a disc is amovie created in Japan and the streams 501 of the disc are two types ofaudio streams (1) Japanese (=original language) and (2) English and twotypes of subtitle streams (1) English and (2) Japanese. In this case,streams selected immediately after content is reproduced from the discby the player are an audio stream as the original language (1) Japaneseand a subtitle stream (2) Japanese. Thus, the same language is selected.In this case, since the subtitle of Japanese is not necessary, it isthought that this selection is not user-friendly.

To solve the problem of the second example, as shown in FIG. 38, whenthe language of audio has been set to “original language” in the playersetting 500 and when the original language matches the language of thesubtitle, as with the selected streams 502, it is sufficient toaccomplish a function of turning off the display of the subtitle.

In other words, when the language of the audio of the player setting 500has been set to “original language” and the language of audio matchesthe language of the subtitle as the result of the automatic selection,property subtitleFlag contained in attribute information (player status323B of property 323, see FIG. 3) of the player, which causes a subtitleto be displayed or not displayed, is set to a value that representssubtitle OFF. With this rule, when the languages of audio and a subtitleare selected, a subtitle stream whose language is the same as that ofaudio can be prevented from being output.

Next, the automatic selection of audio and subtitle streams according toan embodiment of the present invention will be described in detail.First of all, information with which the player apparatus side needs tobe provided to properly and automatically select audio and a subtitlewill be described. The property 323 (see FIG. 3) of the movie player300, which controls reproduction of a stream, has been described withreference to FIG. 7. In the property 323, property audioLanguegeCode,property audioNumber, and property audioFlag for audio and propertysubtitleLanguegeCode, property subtitleNumber, and property subtitleFlagfor subtitles in particular relate to this embodiment.

As described above, property audioLanguageCode represents a languagecode of an audio language that has been set in the UMD video player. Inother words, property audioLanguegeCode represents a language to beselected for audio. As a value of property audioLanguegeCode, a languagecode defined for example in the International Organization forStandardization (ISO) 639-1 may be used. In ISO 639-1, for exampleEnglish is abbreviated as “en” and Japanese as “jp”. According to thisembodiment, as a value of property audioLanguegeCode, “00”, which is notdefined in ISO 639-1, is added. With value “00”, “original language” isrepresented.

As described above, property audioNumber represents the stream number ofan audio stream that is being currently reproduced. Property audioNumberis a 16-bit value composed of an audio stream ID (stream_id) and aprivate stream ID (private_stream_id) (see FIG. 30). Of 16 bits, highorder eight bits are used for a stream ID, whereas the low order eightbits are used for a private stream ID. An audio stream of a clip AVstream file can be uniquely identified by this 16-bit value.

Property audioFlag represents reproduction information of an audiostream. FIG. 39 shows examples of values that property audioFlag canhave. When the value of property audioFlag is “0”, the reproduction ofaudio is turned off, causing audio not to be reproduced. When the valueis “1”, an audio stream represented by property audioNumber isreproduced. At this point, taking account of the case of which an audiostream represented by property audioNumber is dual mono, namely contentsof left and right channels of stereo are different, when the value is“2”, only left channel of dual mono is reproduced, whereas when thevalue is “3”, only right channel of dual mono is reproduced. When anaudio stream is dual mono and the value of property audioFlag is “1”,both left and right channels of dual mono are reproduced.

Property subtitleLanguageCode represents a language code of the languageof a subtitle that has been set to the UMD video player. In other words,property subtitleLanuegeCode represents a language to be selected for asubtitle. As a value of property subtitleLanguegeCode, the language codedefined for example in the International Organization forStandardization (ISO) 639-1 can be used like that for audio streams.

As described above, property subtitleNumber represents the number of asubtitle stream that is currently being reproduced. A value of propertysubtitleNumber is a 16-bit value composed of a stream ID (stream_id) ofa subtitle stream and a private stream ID (private_stream_id) (see FIG.30). Of 16 bits, high order eight bits are used as a stream ID, whereasthe low order eight bits are used for a private stream ID. A subtitlestream of a clip AV stream can be uniquely identified by this 16-bitvalue.

Property subtitleFlag represents a reproduction status of a subtitlestream. FIG. 40 shows examples of values of property subtitleFlag. Whenthe value of property subtitleFlag is “0”, the subtitle display isturned off, causing a subtitle not be displayed. When the value is “1”,the subtitle display is turned on, causing a subtitle to be displayed.

Next, information with which the content side needs to be provided toproperly and automatically select audio and a subtitle will bedescribed. The content side describes attribute information of audiostreams and attribute information of subtitle streams in a clipinformation file. As described with reference to FIG. 29 and FIG. 31,the clip information file contains information of field stream_id andfield private_stream_id that uniquely identify each elementary streammultiplexed in a corresponding AV stream and attribute information shownin FIG. 31. Of attribute information shown in FIG. 31, fieldaudio_language_code for an audio stream and field subtitle_language_codefor a subtitle stream in particular relate to this embodiment of thepresent invention.

Audio streams of a plurality of languages can be multiplexed into a clipAV stream file. Thus, it is necessary to indicate which of audio streamsof a plurality of languages that have been multiplexed is an audiostreams of the original language. According to this embodiment, in aclip information file shown in FIG. 29, a language of an audio streamthat comes first in audio streams arranged by a for loop is defined asthe original language. A language code of the original language isrepresented by field audio_language_code (see FIG. 31) corresponding tothe audio stream.

The property 323 (player status 323B) of the movie player 300 can be setwith methods described with reference to FIG. 8 on the script layer 302.Audio streams and subtitle streams are set with method play( ), methodplayChapter( ), and method changeStream( ). Of these methods, methodchangeStream( ) is a method of changing a current stream to a desiredstream, not a mechanism of automatically selecting a stream. Thus,details of method changeStream( ) will be omitted. Method playChapter( )is equivalent to what argument playListTime, which is one of argumentsof method play( ), is substituted with argument chapterNumber, onlymethod( ) will be described in the following.

FIG. 41A and FIG. 41B list examples of arguments of method play( ). Whenthese arguments are given to method play( ) in a predetermined manner,reproduction of a video stream, an audio stream, and a subtitle streamcorresponding to a stream number designated can be started. Syntax ofmethod( ) is represented for example by formula (1). In other words,arguments are delimited by delimiters (in this example, commands “,”)and arranged in a predetermined order. When arguments are omitted, onlydelimiters are described.movieplayer.play(playListNumber,playListTime,menuMode,pauseMode,video_strm,audio_strm,audio_status,subtitle_strm,subtitle_status)  (1)

Argument playListNumber represents a play list number of a play list tobe reproduced. Argument playListTime represents a time from thebeginning of a play list. When content is reproduced from the beginningof a play list, the value of argument playListTime is set to “0”. Thevalue of argument menuMode is either “true” or “false”. When the valueof argument menuMode is “true”, it denotes that content is reproduced inthe menu mode. When the value of argument menuMode is “true”, it denotesthat content is reproduced in the normal mode. The value of argumentpauseMode is “true” or “false”. When the value of argument pauseMode is“true”, it represents standby as pause. When the value of argumentpauseMode is “false”, it denotes that reproduction is started at normalspeed. Argument video_strm represents a video stream to be reproduced.The value of argument video_strm is “−1” or “−2”. When the value ofargument video_strm is “−1”, it denotes that a video stream to bereproduced is automatically selected by the movie player 300. When thevalue of argument video_strm is “−2”, it denotes that a video stream tobe reproduced is not changed.

The rest of arguments, including argument audio_strm, are arguments forreproduction of audio streams and subtitle streams. These arguments inparticular relate to this embodiment of the present invention. Argumentaudio_strm is an argument with which a value is set to propertyaudioNumber (see FIG. 7) of the movie player 300. Argument audio_strm isused to set an audio stream number represented by 16 bits of a stream ID(stream_id) and a private stream ID (private_stream_id) to propertyaudioNumber. The value of argument audio_strm is “−1” or “−2”. When thevalue of argument audio_strm is “−1”, it denotes that a proper audiostream is automatically selected in the movie player 300 and the audiostream number of the selected audio stream is set to propertyaudioNumber. When the value of argument audio_stream is “−2”, it denotesthat reproduction is started with the value of property audioNumber thatis currently set, not changed.

Argument audio_status is a parameter with which property audioFlag (seeFIG. 7) of the movie player 300 is set. When the value of argumentaudio_status is “0”, “1”, “2”, or “3”, the value is directly set toproperty audioFlag. When the value of argument audio_status is “−2”, itdenotes that the current value of property audioFlag is kept.

Argument subtitle_strm is an argument with which a value is set toproperty subtitleNumber (see FIG. 7) of the movie player 300. Argumentsubtitle_strm is used to set a subtitle stream number represented by 16bits of a stream ID (stream_id) and a private stream ID(private_stream_id) to property subtitleNumber. The value of argumentsubtitle_strm is “−1” or “−2”. When the value of argument subtitle_strmis “−1”, it denotes that a proper subtitle stream is automaticallyselected in the movie player 300 and the subtitle stream number of theselected subtitle stream is set to property subtitleNumber. When thevalue of argument subtitle_strm is “−2”, it denotes that reproduction isstarted with the value of property subTitleNumber that is currently set,not changed.

Argument subtitle_status is a parameter with which property subtitleFlag(see FIG. 7) of the movie player 300 is set. When the value of argumentsubtitle_status is non or “1”, the value of argument subtitle_status isdirectly set to property subtitleFlag. When the value of argumentsubtitle_status is “−1”, the value of property subtitleFlag isautomatically set to a proper value in the movie player 300. When thevalue of argument subtitle_status is “−2”, the current value of propertysubtitleFlag is kept.

Property audioFlag does not contain automatic setting of the movieplayer 300, whereas property subtitleFlag contains automatic setting ofthe movie player 300. This is because when audio and a subtitle are setto the same language, the display of the subtitle is automaticallyturned off, causing the subtitle not to be displayed.

Next, the automatic selection process of an audio stream and a sub titlestream will be described more specifically. FIG. 42 shows a flow of aprocess of automatically selecting an audio stream and a subtitle streamfrom a plurality of types of audio streams and subtitle streams. When adisc is loaded into the player apparatus, the user selects a videostream to be reproduced (at step S80). An audio stream corresponding tothe selected video stream is automatically selected at step S81.Corresponding to the selected result, properly audioFlag is set at stepS82. With reference to property audioFlag, a subtitle stream is selectedat step S83. Corresponding to the selected result, property subtitleFlag is set at step S84.

Next, an example of the process of automatically selecting an audiostream at step S81 shown in FIG. 42 will be described in detail withreference to a flow chart shown in FIG. 43 and FIG. 44. In the automaticselection process of an audio stream, (1) language code, (2) the numberof channels, and (3) arrangement of audio streams in clip informationfile are used. Of these attribute information, the priority of (1)language code is the highest, the priority of (2) the number of channelsis the second highest, and the priority of (3) the arrangement of audiostreams in clip information file is the lowest.

In FIG. 43 and FIG. 44, reference letter A denotes that the flowadvances to a portion represented by the same letter A.

When the selection process of an audio stream is started (at step S90),it is determined whether or not the value of argument audio_strm, whichrepresents the stream number of an audio stream reproduced in methodplay( ), has been set to “−1” or the value has been omitted (at stepS91). As described above, when the value of argument audio_strm is “−1”,the automatic selection of an audio stream is designated.

When the determined result denotes that other than value “−1” has beenset to argument audio_strm, the flow advances to step S92. At step S92,the value of argument audio_strm is set to property audioNumber. Anaudio stream represented by argument audio_strm is selected. Thereafter,the flow advances to step S82 shown in FIG. 42. At step S82, propertyaudioFlag is set in the predetermined manner corresponding to theselected audio stream in the movie player 300. When the number of audiochannels of the selected audio stream is 5.1 channels, the value ofproperty audioFlag is set to for example “1”, denoting whether or not toreproduce the audio stream. When an audio stream has not been selectedat step S92, the process is terminated as an error.

When the process has been terminated as an error, the operation that theUMD video player performs depends on its implementation. When theprocess has been terminated as an error, the next process is performedwith property audioNumber kept. This error process applies to othererror processes in FIG. 43 and FIG. 44.

When the determined result at step S91 denotes that the value ofargument audio_strm has been set to “−1” or omitted, the flow advancesto step S93. At step S93, it is determined whether there is no audiostream identified by property audioNumber of the movie player 300 or thevalue of property audioNumber is undefined. When there is an audiostream identified by property audioNumber, the flow advances to stepS94. At step S94, an audio stream identified by property audioNumber isselected. Thereafter, the flow advances to step S82 shown in FIG. 42.Property audiFlag is set in the predetermined manner corresponding tothe selected audio stream in the movie player 300. When an audio streamhas not been selected, the process is terminated as an error.

When the determined result at step S93 denotes that there is no audiostream identified by property audioNumber of the movie player 300 or thevalue of property audioNumber is undefined, the flow advances to stepS95. After step S95, the automatic selection process for an audio streamis specifically performed. The automatic selection process of an audiostream at step S81 shown in FIG. 42 represents the entire process of theflow chart shown in FIG. 43. The process after step S95 of the flowchart shown in FIG. 43 is the automatic selection process of an audiostream executed when the value of argument audio_strm is “1”, whichrepresents the automatic selection.

First of all, the automatic selection process based on (1) language codeis performed. This process is performed so that an audio stream whoselanguage is the same as the audio language setting of the player isselected by priority. At step S96, it is determined whether or not thevalue of property audioLanguageCode in the movie player 300 is “00”,which represents “original language”. When the determined result denotesthat the value of property audioLanguageCode represents “originallanguage”, the flow advances to step S101.

In steps from S101 to S104, it is determined what is “original language”that has been set on the content side. At step S101, the arrangement ofaudio streams in block StreamInfo( ) of the clip information file (seeFIG. 29) is checked and a language code of a audio stream that comesfirst in the arrangement is obtained. Thereafter, it is determinedwhether or not there is an audio stream whose language code is the sameas the obtained language code and whose number of audio channels isequal to or smaller than the number of audio channels that has been setto the UMD video player. When the determined result denotes that thereis such an audio stream, the flow advances to step S102. When thedetermined result denotes that there is not such an audio stream, theflow advances to step S103.

At step S102, an audio stream whose number of audio channels is maximumin these audio streams that satisfy the conditions at step S101 isselected. When the audio channel setting of the UMD video player is forexample 5.1 channels and there are two audio streams whose language codeis the same as that of an audio stream that comes first in blockStreamInfo( ) and whose numbers of audio channels are 2 channels and 5.1channels, the audio stream whose number of channels is 5.1 channels isselected. When there are a plurality of audio streams whose number ofaudio channels is the same, an audio stream which comes earlier in blockStreamInfo( ) is selected. Thereafter, the flow advances to step S82shown in FIG. 42. At step S82, property audioFlag is set in thepredetermined manner corresponding to the selected audio stream in themovie player 300.

At step S103, it is determined whether or not there is an audio streamwhose number of audio channels is equal to or smaller than the number ofaudio channels that has been set to the UMD video player. When there issuch an audio stream, an audio stream whose number of audio channels ismaximum in these audio streams is selected (at step S104). When thereare a plurality of audio streams whose number of audio channels is thesame, an audio stream that comes earlier in block StreamInfo( ) isselected. Thereafter, the flow advances to step S82 shown in FIG. 42.Property audioFlag is set in the predetermined manner corresponding tothe selected audio stream in the movie player 300.

When the determined result at step S103 denotes that there is not suchan audio stream, the process according to the flow chart shown in FIGS.43 and 44 is completed. In this case, although an audio stream has notbeen selected, the flow advances to step S82. At step S82, propertyaudioFlag is set in the predetermined manner.

When the determined result at step S96 shown in FIG. 43 denotes that thevalue of property audioLanguegeCode of the movie player 300 does notrepresent “original language”, the flow advances to step S97. At stepS97, it is determined whether or not there is an audio stream whoselanguage code is the same as that of property audioLanguegeCode of themovie player 300 and whose number of audio channels is the equal to orsmaller than the number of audio channels that has been set to the UMDvideo player. When the determined result denotes that there is such anaudio stream, the flow advances to step S98. When the determined resultdenotes that there is not such an audio stream, the flow advances tostep S99.

At step S98, like step S102, an audio stream whose number of audiochannels is maximum in audio streams that satisfy the conditions at stepS97 is selected. When there are a plurality of audio streams whosenumber of audio channels is the same, an audio stream that comes earlierin block StreamInfo( ) is selected. Thereafter, the flow advances tostep S82 shown in FIG. 42. Property audioFlag is set in thepredetermined manner corresponding to the selected audio stream in themovie player 300.

At step S99, like step S103, it is determined whether or not there is anaudio stream whose number of audio channels is equal to or smaller thanthe number of audio channels that has been set to the UMD video player.When the determined result denotes that there is such an audio stream,an audio stream whose number of audio channels is maximum in these audiostreams is selected (at step S100). When there are a plurality of audiostreams whose number of audio channels is the same, an audio stream thatcomes earlier in block StreamInfo( ) is selected. Thereafter, the flowadvances to step S82 shown in FIG. 42. Property audioFlag is set in thepredetermined manner corresponding to the selected audio stream in themovie player 300.

When the determined result at step S99 denotes that there is not such anaudio stream, the process according to the flow chart shown in FIG. 43and FIG. 44 is completed. In this case, although an audio stream has notbeen selected, the flow advances to step S82. At step S82, propertyaudioFlag is set in the predetermined manner.

Next, with reference to a flow chart shown in FIG. 45, an example of theprocess of automatically selecting a subtitle stream at step S83 shownin FIG. 42 will be described in detail. When a subtitle stream isselected (at step S110), the flow advances to step S111. At step S111,it is determined whether the value of argument subtitle_strm, whichrepresents the stream number of a subtitle stream to be reproduced, hasbeen set to “−1” in method play( ) or the value has been omitted. Asdescribed above, when the value of argument subtitle_strm is “−1”,automatic selection of a subtitle stream is designated.

When the determined result denotes that the value of argumentsubtitle_strm has been set to other than “−1”, the flow advances to stepS112. At step S112, the value of argument subtitle_strm is set toproperty subtitleNumber and a subtitle stream identified by argumentsubtitle_strm is selected. Thereafter, the flow advances to step S84shown in FIG. 84. Property subtitleFlag is set in the movie player 300.When a subtitle stream has not been selected at step S112, the processis terminated as an error.

When the process has been terminated as an error, the operation that theUMD video player performs depends on its implementation. When theprocess has been terminated as an error, the process according to theflow chart shown in FIG. 45 is terminated and the next process isperformed although a subtitle stream has not been selected. This errorprocess applies to other error process in FIG. 45.

When the determined result at step S111 denotes that the value ofargument subtitle_strm is “−1” or the value has been omitted, the flowadvances to step S113. At step S113, it is determined whether there isno subtitle stream identified by property subtitleNumber of the movieplayer 300 or the value of property subtitleNumber is undefined. Whenthere is a subtitle stream identified by property subtitleNumber, theflow advances to step S114. At step S114, a subtitle stream identifiedby property subtitleNumber is selected. Thereafter, the flow advances tostep S84 shown in FIG. 42. When a subtitle stream has not been selectedat step S114, the process is terminated as an error.

When the determined result at step S113 denotes that there is nosubtitle stream identified by property subtitleNumber of the movieplayer 300 or the value of property subtitleNumber is undefined, theflow advances to step S115. Steps after S115 are a real automaticselection process of a subtitle stream.

At step S116, a subtitle stream of block StreamInfo( ) of the clipinformation file is checked and a language code of the subtitle streamis obtained. It is determined whether or not there is a subtitle streamwhose language code is the same as that of property subtitleLanguegeCodeof the movie player 300. When the determined result denotes that thereis such a subtitle stream, the flow advances to step S117. At step S117,a subtitle stream is selected. When there are a plurality of subtitlestreams that satisfy the condition at step S116, a subtitle stream thatcomes earlier in block StreamInfo( ) in the clip information file isselected. Thereafter, the flow advances to step S84 shown in FIG. 42.

When the determined result at step S116 denotes that there is nosubtitle stream that satisfies the condition, the flow advances to stepS118. At step S118, since there is no subtitle stream that can beselected, the value of property subtitleFlag is set to “0”, whichdenotes that no subtitle is displayed.

Next, with reference to a flow chart shown in FIG. 46, an example of theprocess of the automatic setting of property subtitleFlag at step S84shown in FIG. 42 will be described in detail. When the automatic settingof property subtitleFlag is started (at step S120), the flow advances tostep S121. At step S121, it is determined whether or not the value ofargument subtitle_status, which represents the status of reproduction ofa subtitle of method play( ), has been set to “−1”, which representsautomatic setting, or the value has been omitted. When the value ofargument subtitle_status has been set to other than “−1”, the flowadvances to step S122. At step S122, the value that has been set toargument subtitle_status is set to property subtitleFlag.

When the value of argument subtitle_status has been set to “−1” or thevalue has been omitted, the flow advances to step S123. At step S123, itis determined whether or not a language code identified by propertysubtitleLanguageCode of the movie player 300 matches a language code(property audioLanguageCode of the movie player 300) of an audio streamthat is currently being selected and the value of property audioFlag hasbeen set to other than “0”, causing an audio stream to be reproduced.When the determined result denotes that the conditions at step S123 aresatisfied, the flow advances to step S124.

At step S124, the value of property subtitleFlag is set to “0”, causinga subtitle not to be displayed. In other words, when the conditions atstep S123 are satisfied, it denotes that the language of audioreproduced by an audio stream is the same as the language of a subtitledisplayed by a subtitle stream. Thus, the value of property subtitleFlagis set to “0”, causing a subtitle not to be displayed.

When the determined result denotes that the conditions at step S123 arenot satisfied, the flow advances to step S125. At step S125, the valueof property subtitleFlag is set to “1”, causing a subtitle to bedisplayed.

In FIG. 46, at steps S123, S124, and S125, the display of a subtitle isturned on or off corresponding to the language code of a subtitlestream. Instead, with an attribute of a subtitle stream, the display ofa subtitle may be turned on or off. For example, even if the language ofa subtitle matches the language of audio, when an attribute of asubtitle stream represents a special subtitle such as the foregoingcommentary subtitle, the display of the subtitle may not be suppressed(by setting the value of property subtitleFlag to “1”). When a subtitlestream is used for commentary, it is not necessary to suppress thedisplay of the subtitle.

An attribute of a subtitle stream is represented by the value of fieldsubtitle_presentation_type of block StaticInfo( ) of clip AV stream file“XXXXX.CLP” as was described with reference to FIG. 31. Next, an exampleof a process of setting on/off of display of a subtitle with anattribute of a subtitle stream will be described. In FIG. 47, portionssimilar to those in FIG. 46 are denoted by similar reference numeralsand their description will be omitted. When the determined result atstep S123 denotes that the language code identified by propertysubtitleLanguageCode of the movie player 300 matches the language codeof an audio stream that is currently being selected and the value ofproperty audioFlag has been set to other than “0”, the flow advances tostep S126.

At step S126, it is determined whether or not the attribute of thesubtitle stream represents an attribute of a normal subtitle (Normal).When the determined result denotes that the attribute of the subtitlestream represents the attribute of a normal subtitle, the flow advancesto step S124. At step S124, the value of property subtitleFlag is set to“0”, causing the subtitle not to be displayed. When the determinedresult denotes that the attribute of the subtitle stream does notrepresent the attribute of a normal subtitle, the flow advances to stepS125. At step S125, the value of property subtitleFlag is set to “1”,causing the subtitle to be displayed.

As was described above, audio and a subtitle are properly andautomatically selected according to an embodiment of the presentinvention.

In the foregoing example, audio streams of a plurality of differentlanguages are multiplexed. However, the present invention is not limitedto such an example. For instance, audio streams whose language is thesame and whose contents are different may be able to be multiplexed. Asan example, audio stream A and audio stream B whose languages are thesame and whose contents are different may be multiplexed and one stream(for example audio stream A) may be used as an original language.

DESCRIPTION OF REFERENCE NUMERALS

-   101 DISC-   112 CPU-   113 MEMORY-   115 INPUT INTERFACE-   116 VIDEO DECODER-   117 AUDIO DECODER-   118 VIDEO OUTPUT INTERFACE-   119 AUDIO OUTPUT INTERFACE-   201 OPERATION SYSTEM-   210 VIDEO CONTENT REPRODUCING SECTION-   211 SCRIPT CONTROL MODULE-   212 PLAYER CONTROL MODULE-   214 DECODE CONTROL MODULE-   215 BUFFER CONTROL MODULE-   216 VIDEO DECODER CONTROL MODULE-   217 AUDIO DECODER CONTROL MODULE-   218 SUBTITLE DECODER CONTROL MODULE-   219 GRAPHICS CONTROL MODULE-   241 VIDEO OUTPUT MODULE-   242 VIDEO OUTPUT MODULE-   250 NONVOLATILE MEMORY CONTROL MODULE-   300 MOVIE PLAYER-   301 NATIVE IMPLEMENTATION PLATFORM-   302 SCRIPT LAYER-   310 USER INPUT-   311 CONTROL COMMAND-   312 EVENT-   313 METHOD-   320 DATABASE-   321 PLAYBACK MODULE-   322 DECODER ENGINE-   323 PROPERTY-   324 RESUME INFORMATION-   S10 DURING REPRODUCTION, USER PRESSES “next” KEY.-   S11 uo_playNextChapter( ) OCCURS.-   S12 OBTAIN POSITION OF NEXT CHAPTER MARK FROM DATABASE OF PLAYLIST.-   S13 DOES NEXT CHAPTER MARK EXIST?-   S14 STOP CURRENT REPRODUCTION.-   S15 JUMP TO POSITION REPRESENTED BY NEXT CHAPTER MARK AND STARTS    REPRODUCING VIDEO.-   S16 MARK EVENT OCCURS.-   S17 START EXECUTING EVENT HANDLER CORRESPONDING TO MARK EVENT.-   S18 OBTAIN CHAPTER NUMBER WITH INFORMATION INFORMED UPON OCCURRENCE    OF EVENT.-   S19 DISPLAY MESSAGE REPRESENTING BEGINNING OF CHAPTER.-   S20 COMPLETE EXECUTION OF EVENT HANDLER.-   S30 LOAD DISC.-   S31 LOAD CONTINUOUS REPRODUCTION INFORMATION.-   S32 DOES CONTINUOUS REPRODUCTION INFORMATION EXIST?-   S33 on ContinuePlay-   S34 on AutoPlay-   S35 ACCEPT EVENT AND EXECUTE EVENT HANDLER.-   S36 EXECUTE on Exit.-   S37 STOP MOVIE PLAYER (STORE CONTINUOUS REPRODUCTION INFORMATION).-   S38 COMPLETE REPRODUCTION.-   S39 WILL YOU SEE CONTENT ONCE AGAIN?-   S40 EJECT DISC.-   S50 USER CAUSES MOVIE PLAYER TO PERFORM REPRODUCTION (FROM    BEGINNING).-   S51 DOES EVENT HANDLER on AutoPlay( ) EXIST?-   S52 NATIVE IMPLEMENTATION PLATFORM INFORMS SCRIPT OF EVENT autoPlay.-   S53 NATIVE IMPLEMENTATION PLATFORM INFORMS SCRIPT OF EVENT Exit.-   S54 EXECUTE EVENT HANDLER on AutoPlay.-   S60 USER CAUSES MOVIE PLAYER TO PERFORM REPRODUCTION (CONTINUOUS    REPRODUCTION).-   S61 DOES RESUME INFORMATION EXIST?-   S62 PERFORM REPRODUCTION FROM BEGINNING.-   S63 DOES SCRIPT CONTAIN EVENT HANDLER on ContinuePlay?-   S64 EXECUTE EVENT HANDLER on ContinuePlay.-   S65 EXECUTES DEFAULT EVENT HANDLER on ContinuePlay.-   S70 USER CAUSES MOVIE PLAYER TO STOP REPRODUCTION.-   S71 WHEN RECEIVING USER'S OPERATION, NATIVE IMPLEMENTATION PLATFORM    STARTS EXIT PROCESS:    -   (1) RESTRAINS NEW EVENTS FROM OCCURRING,    -   (2) DISCARDS EVENT HANDLERS THAT HAVE BEEN QUEUED, AND    -   (3) ISSUES COMMAND uo_stop( ) TO MOVIE PLAYER.-   S72 STOP EXECUTION OF CURRENT EVENT HANDLER.-   S73 NATIVE IMPLEMENTATION PLATFORM INFORMS SCRIPT LAYER OF EVENT    Exit.-   S74 EXECUTE EVENT HANDLER on Exit (POST-PROCESS, EXECUTION OF METHOD    setUserData, ETC.)-   S75 NATIVE IMPLEMENTATION PLATFORM PERFORMS EXIT PROCESS (STORING    CONTINUOUS INFORMATION TO NONVOLATILE MEMORY, CHANGING TO SYSTEM    MENU, ETC).-   S80 SELECT VIDEO STREAM.-   S81 AUTOMATICALLY SELECT AUDIO STREAM.-   S82 SET audioFlag.-   S83 AUTOMATICALLY SELECT SUBTITLE STREAM.-   S84 AUTOMATICALLY SET subtitleFlag.-   S90 SELECT AUDIO STREAM.-   S91 HAS VALUE OF ARGUMENT audio_strm IN METHOD BEEN SET TO “−1”    (AUTOMATIC SELECTION) OR HAS ARGUMENT audio_strm BEEN OMITTED?-   S92 SET ARGUMENT audio strm TO PROPERTY audioNumber AND SELECT AUDIO    STREAM IDENTIFIED BY ARGUMENT audio_strm. WHEN AUDIO STREAM IS NOT    ABLE TO BE SELECTED, PROCESS IS TERMINATED AS ERROR.-   S93 IS THERE STREAM IDENTIFIED BY PROPERTY audioNumber OF MOVIE    PLAYER OR IS audioNumber UNDEFINED?-   S94 SELECT AUDIO STREAM IDENTIFIED BY audioNumber. WHEN AUDIO STREAM    IS NOT ABLE TO BE SELECTED, PROCESS IS TERMINATED AS ERROR.-   S95 START AUTOMATIC SELECTION FOR AUDIO STREAM.-   S96 HAS PROPERTY audioLanguageCode OF MOVIE PLAYER BEEN SET TO    “ORIGINAL LANGUAGE”?-   S97 IS THERE STREAM WHOSE LANGUAGE CODE IS SAME AS THAT OF PROPERTY    audioLanguageCode OF MOVIE PLAYER AND WHOSE NUMBER OF AUDIO CHANNELS    IS EQUAL TO OR SMALLER THAN NUMBER OF AUDIO CHANNELS THAT HAS BEEN    SET TO MOVIE PLAYER?-   S98 SELECT STREAM WHOSE NUMBER OF AUDIO CHANNELS IS MAXIMUM IN THOSE    THAT SATISFY PREDETERMINED CONDITIONS. WHEN THERE ARE A PLURALITY OF    STREAMS WHOSE NUMBER OF AUDIO CHANNELS IS SAME, SELECT STREAM THAT    COMES EARLIER IN StreamInfo( ) OF CLIP INFORMATION FILE.-   S99 IS THERE STREAM WHOSE NUMBER OF AUDIO CHANNELS IS EQUAL TO OR    SMALLER THAN NUMBER OF AUDIO CHANNELS THAT HAS BEEN SET TO UMD VIDEO    PLAYER?-   S100 SELECT STREAM WHOSE NUMBER OF AUDIO CHANNELS IS MAXIMUM IN    THOSE. WHEN THERE ARE PLURALITY OF STREAMS WHOSE NUMBER OF AUDIO    CHANNELS, SELECT STREAM THAT COMES EARLIER IN StreamInfo( ) OF CLIP    INFORMATION FILE.-   S101 IS THERE STREAM WHOSE LANGUAGE CODE IS SAME AS THAT OF AUDIO    STREAM THAT COMES FIRST IN StreamInfo( ) AND WHOSE NUMBER OF AUDIO    CHANNELS IS EQUAL TO OR SMALLER THAN NUMBER OF AUDIO CHANNELS THAT    HAS BEEN SET TO UMD VIDEO PLAYER?-   S102 SELECT STREAM WHOSE NUMBER OF AUDIO CHANNELS IS MAXIMUM IN    THOSE THAT SATISFY PREDETERMINED CONDITIONS. WHEN THERE ARE    PLURALITY OF STREAMS WHOSE NUMBER OF AUDIO CHANNELS IS SAME, SELECT    STREAM THAT COMES EARLIER IN StreamInfo( ) OF CLIP INFORMATION FILE.-   S103 IS THERE STREAMS WHOSE NUMBER OF AUDIO CHANNELS IS EQUAL TO OR    SMALLER THAN NUMBER OF AUDIO CHANNELS THAT HAS BEEN SET TO UMD VIDEO    PLAYER?-   S104 SELECT STREAM WHOSE NUMBER OF AUDIO CHANNELS IS MAXIMUM IN    THOSE. WHEN THERE ARE A PLURALITY OF STREAMS WHOSE NUMBER OF AUDIO    CHANNELS IS SAME, SELECT STREAM THAT COMES EARLIER IN StreamInfo( )    OF CLIP INFORMATION FILE.-   S110 SELECT SUBTITLE STREAM.-   S111 HAS ARGUMENT subtitle_strm OF METHOD BEEN SET TO “1” (AUTOMATIC    SELECTION) OR HAS ARGUMENT subtitle_strm BEEN OMITTED?-   S112 SET ARGUMENT subtitle_strm TO PROPERTY subtitleNumber AND    SELECT SUBTITLE STREAM IDENTIFIED BY ARGUMENT subtitle_strm. WHEN    SUBTITLE STREAM IS NOT ABLE TO BE SELECTED, PROCESS IS TERMINATED AS    ERROR.-   S113 IS THERE NO STREAM IDENTIFIED BY PROPERTY subtitleNumber OF    MOVIE PLAYER OR IS subtitleNumber UNDEFINED?-   S114 SELECT SUBTITLE STREAM IDENTIFIED BY subtitleNumber. WHEN    SUBTITLE STREAM IS NOT ABLE TO BE SELECTED, PROCESS IS TERMINATED AS    ERROR.-   S115 START AUTOMATIC SELECTION FOR SUBTITLE STREAM.-   S116 IS THERE STREAM WHOSE LANGUAGE CODE IS SAME AS THAT OF PROPERTY    SubtitleLanguageCode OF MOVIE PLAYER?-   S117 SELECT STREAM. WHEN THERE ARE A PLURALITY OF SUBTITLE STREAMS    THAT SATISFY PREDETERMINED CONDITION, SELECT STREAM THAT COMES    EARLIER IN StreamInfo( ) IN CLIP INFORMATION FILE.-   S118 SINCE THERE IS NO SUBTITLE STREAM THAT CAN BE SELECTED, SET    subtitleFlag TO 0.-   S120 AUTOMATICALLY SET subtitleFlag.-   S121 HAS ARGUMENT subtitle_status OF METHOD BEEN SET TO “−1”    (AUTOMATIC SETTING) OR HAS BEEN OMITTED?-   S122 SET VALUE OF subtitle_status TO PROPERTY subtitleFlag.-   S123 DOES LANGUAGE CODE OF subtitleLanguageCode MATCH LANGUAGE CODE    (audioLanguageCode) OF AUDIO CURRENTLY BEING SELECTED AND VALUE OF    audioFlag HAS BEEN SET TO OTHER THAN 0?-   S124 SET subtitleFlag TO 0, CAUSING DISPLAY OF AUDIO TO BE TURNED    OFF.-   S125 SET subtitleFlag TO 1 (CAUSING DISPLAY OF SUBTITLE TO BE TURNED    ON).

1. A reproducing apparatus of reproducing content data from adisc-shaped recording medium, comprising: read means for reading datafrom the recording medium on which content data containing at least avideo stream, one or a plurality of audio streams corresponding to thevideo stream and a reproduction control program with which reproductionof the content data is controlled have been recorded; player means forreproducing the content data according to the reproduction controlprogram; first mode setting means for setting a first mode to the playermeans such that it automatically selects an audio stream of an originallanguage from the one or plurality of audio streams when the contentdata are reproduced; wherein the content data also includes one or aplurality of subtitle streams, and wherein the reproducing apparatusfurther comprises: second mode setting means for setting a second modeto the player means such that it selects whether or not to reproduce theone or a plurality of subtitle streams when the content data arereproduced; further comprising: audio stream automatic selection settingmeans for setting whether or not to automatically select one audiostream from the one or plurality of audio streams; and subtitle streamautomatic selection setting means for setting whether or not toautomatically select one subtitle stream from the one or plurality ofsubtitle streams, wherein a language of the audio stream automaticallyselected according to a setting of the audio stream automatic selectionsetting means matches a language of the subtitle stream automaticallyselected according to a setting of the subtitle stream automaticselection setting means, the second mode of the second mode settingmeans is automatically set such that the selected one or a plurality ofsubtitle streams is not reproduced.
 2. The reproducing apparatus as setforth in claim 1, wherein in the automatic selection of the audio streamautomatic selection setting means, when the first mode has been set bythe first mode setting means, an audio stream of an original language isselected from the one or plurality of audio streams, and when the firstmode has not been set by the first mode setting means, an audio streamof a language set by the player means is selected from the one orplurality of audio streams.
 3. The reproducing apparatus as set forth inclaim 1, wherein in the automatic selection of the subtitle streamautomatic selection setting means, a subtitle stream of a language setby the player means is selected from the one or plurality of subtitlestreams.
 4. The reproducing apparatus as set forth in claim 1, whereinstream information has been also recorded on the recording medium, thestream information describing at least information which identifies eachof the one or plurality of subtitle streams, and wherein when there area plurality of subtitle streams whose language is the same, the playermeans selects the subtitle stream which comes earlier in the streaminformation from the one or plurality of subtitle streams.
 5. Thereproducing apparatus as set forth in claim 1, wherein streaminformation has been also recorded on the recording medium, the streaminformation describing at least information which identifies each of theone or plurality of audio streams, and wherein the player meansdetermines that the audio stream at a position which comes first in thestream information of the one or plurality of audio streams be an audiostream of the original language.
 6. The reproducing apparatus as setforth in claim 5, wherein the stream information also describesinformation representing a number of channels of an audio stream,wherein the player means automatically selects an audio stream whoselanguage is the same as the original language and whose number ofchannels is maximum from the one or plurality of audio streams.
 7. Thereproducing apparatus as set forth in claim 6, wherein there are aplurality of audio streams whose language is the same as the originallanguage and whose number of channels is the same, the player meansselects an audio stream which comes first in the stream information fromthe one or plurality of audio streams.
 8. A reproducing method ofreproducing content data from a disc-shaped recording medium, comprisingthe steps of: reading data from the recording medium on which contentdata containing at least a video stream, one or a plurality of audiostreams corresponding to the video stream, and a reproduction controlprogram with which reproduction of the content data is controlled havebeen recorded; reproducing the content data according to thereproduction control program; setting a first mode to the contentreproduction step such that an audio stream of an original language isautomatically selected from the one or plurality of audio streams whenthe content data are reproduced; wherein the reproduction controlprogram causes a reproducing apparatus which reproduces the content datato automatically select the original language based on the streaminformation; wherein the content data also contain one or a plurality ofsubtitle streams corresponding to the video stream, and wherein thereproduction control program causes the reproducing apparatus toautomatically select one audio stream from the one or plurality of audiostreams, to automatically select one subtitle stream from the one orplurality of subtitle streams, and not to reproduce the selectedsubtitle stream when a language of the audio stream which has beenautomatically selected matches a language of the subtitle stream whichhas been automatically selected.
 9. A reproducing method executed by acomputer device, the reproducing method reproducing content data from adisc-shaped recording medium, the reproducing method comprising thesteps of: reading data from the recording medium on which content datacontaining at least a video stream, one or a plurality of audio streamscorresponding to the video stream, and a reproduction control programwith which reproduction of the content data is controlled have beenrecorded; reproducing the content data according to the reproductioncontrol program; setting a first mode to the content reproduction stepsuch that an audio stream of an original language is automaticallyselected from the one or plurality of audio streams when the contentdata are reproduced; wherein the reproduction control program causes areproducing apparatus which reproduces the content data to automaticallyselect the original language based on the stream information; whereinthe content data also contain one or a plurality of subtitle streamscorresponding to the video stream, and wherein the reproduction controlprogram causes the reproducing apparatus to automatically select oneaudio stream from the one or plurality of audio streams, toautomatically select one subtitle stream from the one or plurality ofsubtitle streams, and not to reproduce the selected subtitle stream whena language of the audio stream which has been automatically selectedmatches a language of the subtitle stream which has been automaticallyselected.
 10. A non-transitory recording medium on which content datacontaining at least a video stream, one or a plurality of video streamscorresponding to the video stream, a reproduction control program withwhich reproduction of the content data is controlled, and streaminformation describing at least information which identifies each of oneor a plurality of audio streams such that the information whichidentifies the audio stream used as an original language comes firsthave been recorded; wherein the reproduction control program causes areproducing apparatus which reproduces the content data to automaticallyselect the original language based on the stream information; whereinthe content data also contain one or a plurality of subtitle streamscorresponding to the video stream, and wherein the reproduction controlprogram causes the reproducing apparatus to automatically select oneaudio stream from the one or plurality of audio streams, toautomatically select one subtitle stream from the one or plurality ofsubtitle streams, and not to reproduce the selected subtitle stream whena language of the audio stream which has been automatically selectedmatches a language of the subtitle stream which has been automaticallyselected.
 11. The recording medium as set forth in claim 10, wherein thestream information also contains at last information which identifieseach of the one or plurality of subtitle streams, and wherein when thereare a plurality of subtitle streams whose language is the same in theone or plurality of subtitle streams, the subtitle stream to be selectedcomes earlier in the stream information.
 12. The recording medium as setforth in claim 10, wherein the stream information also describesinformation representing a number of channels of the audio streams, andwherein the reproducing apparatus which reproduces the content data iscaused to automatically select an audio stream whose number of channelsis maximum and whose language is the same as the original language fromthe one or plurality of audio streams.
 13. The recording medium as setforth in claim 12, wherein when there are a plurality of audio streamswhose language is the same as the original language and whose number ofchannels is the same in the one or plurality of audio streams, the audiostream to be selected comes earlier in the stream information.
 14. Anon-transitory recording medium storing a data structure comprising: avideo stream; content data containing one or a plurality of audiostreams corresponding to the video stream; a reproduction controlprogram with which reproduction of the content data is controlled;stream information containing at least information which identifies eachof the one or plurality of audio streams such that the information whichidentifies the audio stream used as an original language comes first;wherein the reproduction control program causes a reproducing apparatuswhich reproduces the content data to automatically select the originallanguage based on the stream information; wherein the content data alsocontain one or a plurality of subtitle streams corresponding to thevideo stream, and wherein the reproduction control program causes thereproducing apparatus to automatically select one audio stream from theone or plurality of audio streams, to automatically select one subtitlestream from the one or plurality of subtitle streams, and not toreproduce the selected subtitle stream when a language of the audiostream which has been automatically selected matches a language of thesubtitle stream which has been automatically selected.